├── .gitattributes ├── .htaccess ├── .user.ini ├── Dockerfile ├── LICENSE ├── README.md ├── application ├── cache │ └── index.html ├── config │ ├── all │ │ ├── app.php │ │ ├── index.html │ │ └── language.php │ ├── autoload.php │ ├── config.php │ ├── constants.php │ ├── database.php │ ├── doctypes.php │ ├── foreign_chars.php │ ├── hooks.php │ ├── index.html │ ├── migration.php │ ├── mimes.php │ ├── profiler.php │ ├── routes.php │ ├── smileys.php │ └── user_agents.php ├── controllers │ ├── Cron.php │ ├── Export.php │ ├── Help.php │ ├── Import.php │ ├── Install.php │ ├── Json.php │ ├── Labels.php │ ├── Login.php │ ├── Logout.php │ ├── Marks.php │ ├── Migrations.php │ ├── Register.php │ ├── Singletons.php │ ├── Tags.php │ ├── Tools.php │ ├── User.php │ ├── Welcome.php │ └── index.html ├── core │ ├── Plain_CodeIgniter.php │ ├── Plain_Config.php │ ├── Plain_Controller.php │ ├── Plain_Exceptions.php │ ├── Plain_Hooks.php │ ├── Plain_Lang.php │ ├── Plain_Loader.php │ ├── Plain_Model.php │ ├── Plain_Router.php │ └── index.html ├── helpers │ ├── MY_url_helper.php │ ├── data_helper.php │ ├── hash_helper.php │ ├── hrecipe_helper.php │ ├── http_build_url_helper.php │ ├── index.html │ ├── oembed_helper.php │ ├── simple_html_dom.php │ ├── validation_helper.php │ └── view_helper.php ├── hooks │ ├── Unmark_Languages.php │ └── index.html ├── index.html ├── language │ ├── english.php │ ├── index.html │ ├── phrases.php │ ├── phrases_errors.php │ └── zh-CN.php ├── libraries │ ├── CIDatabaseSessionHandler.php │ ├── Exceptional.php │ ├── JSONExport.php │ ├── JSONImport.php │ ├── JSONImportStateMachine │ │ ├── JSONImportStateInterface.php │ │ ├── JSONImportStateMarks.php │ │ ├── JSONImportStateMetaData.php │ │ ├── JSONImportStateStart.php │ │ └── index.html │ ├── Mark_Import.php │ ├── Plain_Cache.php │ ├── Plain_Email.php │ ├── Plain_Migration.php │ ├── Plain_Session.php │ ├── Uuid.php │ └── index.html ├── logs │ ├── index.html │ ├── log-2020-04-30.php │ ├── log-2020-05-05.php │ ├── log-2020-05-27.php │ ├── log-2020-06-23.php │ ├── log-2020-06-24.php │ ├── log-2020-06-25.php │ ├── log-2020-10-05.php │ ├── log-2020-10-06.php │ ├── log-2020-11-07.php │ ├── log-2020-11-08.php │ └── log-2020-11-09.php ├── migrations │ ├── 001_create_nilai.php │ ├── 002_archive_stats.php │ ├── 003_users_update.php │ ├── 004_password_update.php │ ├── 005_users_admin_flag.php │ ├── 006_plain_sessions.php │ ├── 007_batshit_crazy.php │ ├── 008_user_token.php │ ├── 009_delete_marks.php │ ├── 010_tokens.php │ ├── 2014022801_label_sort.php │ ├── 2014112501_user_titles.php │ └── index.html ├── models │ ├── Labels_model.php │ ├── Marks_model.php │ ├── Tags_model.php │ ├── Tokens_model.php │ ├── User_marks_to_tags_model.php │ ├── Users_model.php │ ├── Users_to_marks_model.php │ └── index.html ├── third_party │ ├── PHP-Markdown-1.2.5 │ │ ├── License.text │ │ ├── PHP Markdown Extra Readme.text │ │ ├── index.html │ │ └── markdown.php │ └── index.html └── views │ ├── email │ ├── forgot-password.php │ ├── index.html │ └── update-password.php │ ├── errors │ ├── cli │ │ ├── error_404.php │ │ ├── error_db.php │ │ ├── error_exception.php │ │ ├── error_general.php │ │ ├── error_php.php │ │ └── index.html │ ├── html │ │ ├── error_404.php │ │ ├── error_db.php │ │ ├── error_general.php │ │ ├── error_php.php │ │ └── index.html │ └── index.html │ ├── import │ ├── index.html │ └── index.php │ ├── json │ ├── index.html │ └── index.php │ ├── layouts │ ├── accountlinks.php │ ├── footer.php │ ├── footer_scripts.php │ ├── footer_unlogged_scripts.php │ ├── header.php │ ├── jsvars.php │ ├── navigation.php │ ├── navigation │ │ ├── index.html │ │ ├── nav_helper.php │ │ ├── nav_icons.php │ │ └── nav_panels.php │ ├── sidebar.php │ ├── sidebar │ │ ├── index.html │ │ └── sidebar_notices.php │ ├── timeline.php │ ├── topbar │ │ ├── index.html │ │ └── searchform.php │ └── userforms.php │ ├── marks │ ├── error.php │ ├── index.html │ ├── index.php │ └── info.php │ ├── partials │ ├── debug.php │ └── index.html │ ├── register │ └── index.php │ ├── setup.php │ ├── singletons │ ├── index.html │ └── reset.php │ └── welcome.php ├── assets ├── .htaccess ├── css │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdg18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdh18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdj18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdo18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18Q.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdv18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidg18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidh18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidj18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkido18Smxg.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18Q.woff2 │ ├── 6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidv18Smxg.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 │ ├── fonts.css │ ├── icons.data.png.css │ ├── icons.data.svg.css │ ├── icons.fallback.css │ ├── selectize.css │ ├── unmark.css │ ├── unmark.css.map │ └── unmark_welcome.css ├── images │ ├── demo.gif │ ├── feature_bookmarklet.jpg │ ├── feature_chrome.jpg │ ├── feature_git.jpg │ ├── feature_import.jpg │ ├── feature_notes.jpg │ ├── feature_preview.jpg │ ├── feature_tweet.jpg │ ├── icons │ │ ├── archive.png │ │ ├── bell.png │ │ ├── big_close.png │ │ ├── check.png │ │ ├── check_dark.png │ │ ├── circle_arrow_down.png │ │ ├── circle_arrow_up.png │ │ ├── circle_check.png │ │ ├── down.png │ │ ├── edit.png │ │ ├── ellipsis.png │ │ ├── github.png │ │ ├── go.png │ │ ├── goto_link.png │ │ ├── goto_title.png │ │ ├── heading_archive.png │ │ ├── heading_close.png │ │ ├── heading_collapse.png │ │ ├── heading_expand.png │ │ ├── heading_search.png │ │ ├── heading_tag.png │ │ ├── heading_time.png │ │ ├── index.html │ │ ├── label.png │ │ ├── large_check.png │ │ ├── large_x.png │ │ ├── links.png │ │ ├── logo.png │ │ ├── logo_text_dark.png │ │ ├── logo_text_light.png │ │ ├── logo_text_white.png │ │ ├── menu_close.png │ │ ├── menu_open.png │ │ ├── option_down.png │ │ ├── option_up.png │ │ ├── search.png │ │ ├── settings.png │ │ ├── small_check.png │ │ ├── small_x.png │ │ ├── spinner.png │ │ ├── time.png │ │ ├── unarchive.png │ │ ├── up.png │ │ └── upgrade.png │ ├── index.html │ ├── logo.png │ ├── logo │ │ ├── android-chrome-150.png │ │ ├── android-chrome-180.png │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── bookmark.jpg │ │ ├── bookmark90.jpg │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── logo-wide-128-70.png │ │ ├── logo-wide-big.png │ │ ├── logo128.png │ │ └── logo64.png │ ├── logo_text_light.png │ └── pwa │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── mstile-150x150.png │ │ └── safari-pinned-tab.svg ├── js │ ├── plugins │ │ ├── Chart.min.js │ │ ├── fitvids.js │ │ ├── hogan.js │ │ ├── jquery.pjax.js │ │ ├── modernizr-2.7.1.min.js │ │ ├── selectize.min.js │ │ └── unmark-graph.js │ ├── production │ │ ├── unmark.bookmarklet.js │ │ ├── unmark.loggedin.js │ │ ├── unmark.loggedout.js │ │ └── unmark.plugins.js │ └── templates │ │ └── unmark-templates.js └── libraries │ └── jquery │ └── jquery-2.1.0.min.js ├── bookmarklets ├── unmark_autoclose.js └── unmark_default.js ├── browserconfig.xml ├── custom_example └── readme.md ├── docker-compose.yml ├── docker-configs └── php-custom.ini ├── export-schema.md ├── favicon.ico ├── index.php ├── license.txt ├── manifest.json ├── service-worker.js └── system ├── core ├── Benchmark.php ├── CodeIgniter.php ├── Common.php ├── Config.php ├── Controller.php ├── Exceptions.php ├── Hooks.php ├── Input.php ├── Lang.php ├── Loader.php ├── Log.php ├── Model.php ├── Output.php ├── Router.php ├── Security.php ├── URI.php ├── Utf8.php ├── compat │ ├── hash.php │ ├── index.html │ ├── mbstring.php │ ├── password.php │ └── standard.php └── index.html ├── database ├── DB.php ├── DB_cache.php ├── DB_driver.php ├── DB_forge.php ├── DB_query_builder.php ├── DB_result.php ├── DB_utility.php ├── drivers │ ├── cubrid │ │ ├── cubrid_driver.php │ │ ├── cubrid_forge.php │ │ ├── cubrid_result.php │ │ ├── cubrid_utility.php │ │ └── index.html │ ├── ibase │ │ ├── ibase_driver.php │ │ ├── ibase_forge.php │ │ ├── ibase_result.php │ │ ├── ibase_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 │ │ └── subdrivers │ │ │ ├── index.html │ │ │ ├── pdo_4d_driver.php │ │ │ ├── pdo_4d_forge.php │ │ │ ├── pdo_cubrid_driver.php │ │ │ ├── pdo_cubrid_forge.php │ │ │ ├── pdo_dblib_driver.php │ │ │ ├── pdo_dblib_forge.php │ │ │ ├── pdo_firebird_driver.php │ │ │ ├── pdo_firebird_forge.php │ │ │ ├── pdo_ibm_driver.php │ │ │ ├── pdo_ibm_forge.php │ │ │ ├── pdo_informix_driver.php │ │ │ ├── pdo_informix_forge.php │ │ │ ├── pdo_mysql_driver.php │ │ │ ├── pdo_mysql_forge.php │ │ │ ├── pdo_oci_driver.php │ │ │ ├── pdo_oci_forge.php │ │ │ ├── pdo_odbc_driver.php │ │ │ ├── pdo_odbc_forge.php │ │ │ ├── pdo_pgsql_driver.php │ │ │ ├── pdo_pgsql_forge.php │ │ │ ├── pdo_sqlite_driver.php │ │ │ ├── pdo_sqlite_forge.php │ │ │ ├── pdo_sqlsrv_driver.php │ │ │ └── pdo_sqlsrv_forge.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 │ ├── sqlite3 │ │ ├── index.html │ │ ├── sqlite3_driver.php │ │ ├── sqlite3_forge.php │ │ ├── sqlite3_result.php │ │ └── sqlite3_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 │ ├── pagination_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 │ ├── Cache_redis.php │ ├── Cache_wincache.php │ └── index.html └── index.html ├── Calendar.php ├── Cart.php ├── Driver.php ├── Email.php ├── Encrypt.php ├── Encryption.php ├── Form_validation.php ├── Ftp.php ├── Image_lib.php ├── Javascript.php ├── Javascript ├── Jquery.php └── index.html ├── Migration.php ├── Pagination.php ├── Parser.php ├── Profiler.php ├── Session ├── Session.php ├── SessionHandlerInterface.php ├── Session_driver.php ├── drivers │ ├── Session_database_driver.php │ ├── Session_files_driver.php │ ├── Session_memcached_driver.php │ ├── Session_redis_driver.php │ └── index.html └── index.html ├── Table.php ├── Trackback.php ├── Typography.php ├── Unit_test.php ├── Upload.php ├── User_agent.php ├── Xmlrpc.php ├── Xmlrpcs.php ├── Zip.php └── index.html /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | 2 | RewriteEngine On 3 | RewriteBase / 4 | 5 | #Removes access to the system folder by users. 6 | #Additionally this will allow you to create a System.php controller, 7 | #previously this would not have been possible. 8 | #'system' can be replaced if you have renamed your system folder. 9 | RewriteCond %{REQUEST_URI} ^system.* 10 | RewriteRule ^(.*)$ /index.php?/$1 [L] 11 | 12 | #When your application folder isn't in the system folder 13 | #This snippet prevents user access to the application folder 14 | #Submitted by: Fabdrol 15 | #Rename 'application' to your applications folder name. 16 | RewriteCond %{REQUEST_URI} ^application.* 17 | RewriteRule ^(.*)$ /index.php?/$1 [L] 18 | 19 | #Checks to see if the user is attempting to access a valid file, 20 | #such as an image or css document, if this isn't true it sends the 21 | #request to index.php 22 | RewriteCond %{REQUEST_FILENAME} !-f 23 | RewriteCond %{REQUEST_FILENAME} !-d 24 | RewriteRule ^(.*)$ index.php?/$1 [L] 25 | 26 | 27 | 28 | # If we don't have mod_rewrite installed, all 404's 29 | # can be sent to index.php, and everything works as normal. 30 | # Submitted by: ElliotHaughin 31 | 32 | ErrorDocument 404 index.php 33 | 34 | -------------------------------------------------------------------------------- /.user.ini: -------------------------------------------------------------------------------- 1 | open_basedir=/www/wwwroot/bookmark.gezhong.vip/:/tmp/ -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.6-apache 2 | RUN docker-php-ext-install -j$(nproc) mysqli && a2enmod rewrite -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 me 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /application/cache/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

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

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/config/all/language.php: -------------------------------------------------------------------------------- 1 | 'en_US', 9 | 'polish' => 'pl_PL', 10 | 'simple_chinese' => 'zh_CN' 11 | ); 12 | -------------------------------------------------------------------------------- /application/config/doctypes.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 | 'Unmark_Localization', 17 | 'function' => 'loadLanguage', 18 | 'filename' => 'Unmark_Localization.php', 19 | 'filepath' => 'hooks', 20 | );*/ 21 | 22 | // Loads language translation array 23 | $hook['pre_controller_method'][''] = array( 24 | 'class' => 'Unmark_languages', 25 | 'function' => 'loadLanguage', 26 | 'filename' => 'Unmark_Languages.php', 27 | 'filepath' => 'hooks', 28 | ); 29 | 30 | 31 | /* End of file hooks.php */ 32 | /* Location: ./application/config/hooks.php */ 33 | -------------------------------------------------------------------------------- /application/config/index.html: -------------------------------------------------------------------------------- 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 | | Format for migration (YYYYMMDDXX format where XX is an incremented sequence of changes in selected day) 24 | | 25 | */ 26 | $config['migration_version'] = 2014112501; 27 | 28 | 29 | /* 30 | |-------------------------------------------------------------------------- 31 | | Miscellaneous Migration options 32 | |-------------------------------------------------------------------------- 33 | | 34 | | Unlikely you'll want to update these unless you know what you're doing. 35 | | 36 | | Format for migration (YYYYMMDDXX format where XX is an incremented sequence of changes in selected day) 37 | | 38 | */ 39 | $config['migration_type'] = 'unmark'; // legacy 40 | $config['migration_auto_latest'] = true; // Auto-update to the latest migration 41 | $config['migration_table'] = 'migrations'; // Table where the migration version number is stored 42 | 43 | 44 | /* 45 | |-------------------------------------------------------------------------- 46 | | Migrations Path 47 | |-------------------------------------------------------------------------- 48 | | 49 | | Path to your migrations folder. 50 | | Typically, it will be within your application path. 51 | | Also, writing permission is required within the migrations path. 52 | | 53 | */ 54 | $config['migration_path'] = APPPATH . 'migrations/'; 55 | 56 | /* 57 | * Due to switch from timestamp to unmark numbering (to support 32-bit systems), we need to add mappings 58 | * for already created migration files, to port on 64-bit systems properly 59 | * If you've created custom migrations, please add entries to this config in form of 60 | * old number (timestamp) => new number (YYYYMMDDXX format where XX is an incremented sequence of changes in selected day) 61 | * This too is legacy. 62 | */ 63 | $config['migration_mappings'] = array( 64 | '20140228091723' => '2014022801', 65 | '20141125010000' => '2014112501' 66 | ); 67 | 68 | 69 | /* End of file migration.php */ 70 | /* Location: ./application/config/migration.php */ 71 | -------------------------------------------------------------------------------- /application/config/profiler.php: -------------------------------------------------------------------------------- 1 | _<' . PHP_EOL; 21 | } 22 | 23 | public function processEmbeds() 24 | { 25 | $embedly_key = $this->config->item('embedly_api_key'); 26 | 27 | if (empty($embedly_key)) { 28 | print 'ERROR: Please add an embedly API key in order to process embeds.' . PHP_EOL; 29 | 30 | // Send exception 31 | $this->exceptional->createTrace(E_ERROR, 'No embedly API key configured. Cannot run process to find embeds.', __FILE__, __LINE__); 32 | exit; 33 | } 34 | 35 | set_time_limit(0); 36 | 37 | // Get any marks that haven't been run for embeds 38 | $this->load->model('marks_model', 'mark'); 39 | $marks = $this->mark->read("embed_processed = '0'", self::MAX_EMBEDS_TO_PROCESS, 1, 'mark_id, url'); 40 | 41 | if (isset($marks[0]->mark_id)) { 42 | $this->load->helper('oembed'); 43 | foreach($marks as $k => $mark) { 44 | 45 | // OEmbed check 46 | // If no embed, check recipes 47 | $embed = oembed($mark->url, $embedly_key); 48 | 49 | // Set options 50 | // Set embed processed = 1 51 | $options = array(); 52 | $options['embed_processed'] = 1; 53 | 54 | // If embed is found 55 | // Set it in options 56 | if (! empty($embed)) { 57 | $options['embed'] = $embed; 58 | } 59 | 60 | $res = $this->mark->update($mark->mark_id, $options); 61 | 62 | } 63 | } 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /application/controllers/Export.php: -------------------------------------------------------------------------------- 1 | user_id) || ! is_numeric($this->user_id)) { 25 | header('Location: /'); 26 | exit; 27 | } 28 | 29 | // Set default success to false 30 | $this->data['success'] = false; 31 | 32 | } 33 | 34 | /** 35 | * Generate JSON export file for current user 36 | */ 37 | public function index() 38 | { 39 | // Enable export library 40 | $this->load->library('JSONExport'); 41 | // Add import version info 42 | $this->jsonexport->addMeta('export_version', self::EXPORT_FILE_VERSION); 43 | $this->jsonexport->addMeta('export_date', date('Y-m-d H:i:s')); 44 | // Retrieve user marks 45 | $this->load->model('users_to_marks_model', 'user_marks'); 46 | $where = 'users_to_marks.user_id='. $this->user_id; 47 | $marksCount = $this->user_marks->count($where); 48 | // Number of marks 49 | $this->jsonexport->addMeta('marks_count', $marksCount); 50 | $pages = ceil((double) $marksCount / (double) self::PAGE_SIZE); 51 | // Get page of data 52 | for($curPage=1;$curPage<=$pages;$curPage++){ 53 | $pageResults = $this->user_marks->readComplete($where, self::PAGE_SIZE, $curPage); 54 | // Add all retrieved marks 55 | if(is_array($pageResults)){ 56 | foreach($pageResults as $key=>$singleMark){ 57 | $this->jsonexport->addMark($singleMark); 58 | } 59 | // Add single mark 60 | } else if(!empty($pageResults)){ 61 | $this->jsonexport->addMark($pageResults); 62 | } 63 | } 64 | // Write the file as attachment 65 | $file = $this->jsonexport->getFileForOutput(); 66 | $this->output->set_content_type('application/json'); 67 | $this->output->set_header('Content-Disposition: attachment; filename=' . 'export.json'); 68 | while (!$file->eof()) { 69 | $this->output->append_output($file->fgets()); 70 | } 71 | } 72 | 73 | } -------------------------------------------------------------------------------- /application/controllers/Help.php: -------------------------------------------------------------------------------- 1 | load->library('session'); 13 | $user = $this->session->userdata('user'); 14 | 15 | if (! isset($user['admin']) || empty($user['admin'])) { 16 | header('Location: /'); 17 | exit; 18 | } 19 | } 20 | 21 | public function index() 22 | { 23 | 24 | // See if there is a users table 25 | // Also, be sure there _are_ users. 26 | if ( !$this->db->table_exists('users') ) { // No user table 27 | 28 | // There is no users table, run migrations to make 29 | // sure that database is up-to-date. 30 | $this->load->library('migration'); 31 | 32 | if ( ! $this->migration->current() ) 33 | { 34 | show_error($this->migration->error_string()); 35 | exit; 36 | } 37 | 38 | } 39 | 40 | // Make sure there is at least one user 41 | $this->db->from('users'); 42 | $number_of_users = $this->db->count_all_results(); 43 | 44 | // if users exist, redirect to homepage, else register 45 | $redirect = ($number_of_users > 0) ? '/' : '/register'; 46 | header('Location: ' . $redirect); 47 | exit; 48 | } 49 | 50 | public function setup() 51 | { 52 | if ($this->db->table_exists('users') === true) { 53 | header('Location: /'); 54 | exit; 55 | } 56 | 57 | $this->load->view('setup'); 58 | } 59 | 60 | // Used to update from one version to another. 61 | public function upgrade() 62 | { 63 | //$this->check_admin(); // Removed in 1.7.1. This is only applicable on unmark.it 64 | $this->load->library('migration'); 65 | 66 | if ( ! $this->migration->current() ) 67 | { 68 | show_error($this->migration->error_string()); 69 | exit; 70 | } 71 | exit(sprintf(unmark_phrase('Upgraded. Please return home.'), '/')); 72 | 73 | } 74 | 75 | } 76 | -------------------------------------------------------------------------------- /application/controllers/Json.php: -------------------------------------------------------------------------------- 1 | data['errors'] = formatErrors(403); 15 | $this->renderJSON(); 16 | } 17 | 18 | // Check if user is logged in and using chrome extension 19 | public function chromePing() 20 | { 21 | if ($this->logged_in !== true || parent::isChromeExtension() === false) { 22 | $this->data['errors'] = formatErrors(403); 23 | } 24 | else { 25 | $this->data['success'] = true; 26 | } 27 | $this->renderJSON(); 28 | } 29 | 30 | // Catch all 31 | public function index() 32 | { 33 | $this->data['errors'] = formatErrors(404); 34 | $this->renderJSON(); 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /application/controllers/Login.php: -------------------------------------------------------------------------------- 1 | redirectIfInvalidCSRF(); 15 | 16 | $this->data['success'] = false; 17 | 18 | // Find user 19 | $this->load->model('users_model', 'user'); 20 | $user = $this->user->read("email = '" . $this->db_clean->email . "'", 1, 1); 21 | 22 | if (! isset($user->user_id)) { 23 | $this->data['message'] = sprintf(unmark_phrase('The email address `%s` was not found.'), $this->clean->email); 24 | } 25 | elseif (! isset($user->active) || empty($user->active)) { 26 | $this->data['message'] = unmark_phrase('Your account is no longer active. Please contact support.'); 27 | } 28 | else { 29 | // Check proper password 30 | if (strlen($user->password) == 32) { 31 | $match = (md5($this->clean->password) == $user->password) ? true : false; 32 | 33 | // Try to update to new password security since they are on old MD5 34 | $hash = generateHash($this->clean->password); 35 | 36 | // If hash is valid and match is valid 37 | // Upgrade users to new encryption routine 38 | if ($hash !== false && $match === true) { 39 | $res = $this->user->update("user_id = '" . $user->user_id . "'", array('password' => $hash)); 40 | } 41 | } 42 | else { 43 | $match = (verifyHash($this->clean->password, $user->password) == $user->password) ? true : false; 44 | } 45 | 46 | // Check if passwords match 47 | if ($match === false) { 48 | 49 | $this->data['message'] = unmark_phrase('Your password is incorrect. Please try again.'); 50 | } 51 | else { 52 | // At this point we are clear for takeoff 53 | // Regenerate session 54 | // Set session variables and send user on their way 55 | $add_redirect = $this->session->userdata('add_redirect'); 56 | $redirect = (empty($add_redirect)) ? '/marks' : $add_redirect; 57 | 58 | $this->session->unset_userdata('add_redirect'); 59 | $user->email = $this->clean->email; 60 | //$this->session->sess_update(); 61 | $this->sessionAddUser($user); 62 | $this->data['success'] = true; 63 | $this->data['redirect_url'] = $redirect; 64 | } 65 | } 66 | 67 | $this->renderJSON(); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /application/controllers/Logout.php: -------------------------------------------------------------------------------- 1 | sessionClear(); 15 | header('Location: /'); 16 | exit; 17 | } 18 | } -------------------------------------------------------------------------------- /application/controllers/Migrations.php: -------------------------------------------------------------------------------- 1 | load->library('migration'); 26 | 27 | if ( ! $this->migration->current() ) 28 | { 29 | show_error($this->migration->error_string()); 30 | exit(-1); 31 | } else{ 32 | echo "Migrations run successfully\n"; 33 | exit(0); 34 | } 35 | } 36 | 37 | /** 38 | * Update DB to specified version 39 | */ 40 | public function version($version) 41 | { 42 | if(!empty($version) && is_numeric($version)){ 43 | // Run migrations to make 44 | // sure that database is up-to-date. 45 | $this->load->library('migration'); 46 | 47 | if ( ! $this->migration->version($version) ) 48 | { 49 | show_error($this->migration->error_string()); 50 | exit(-1); 51 | } else{ 52 | echo "Migrations run successfully for version $version\n"; 53 | exit(0); 54 | } 55 | } 56 | } 57 | 58 | } -------------------------------------------------------------------------------- /application/controllers/Register.php: -------------------------------------------------------------------------------- 1 | config->item('plain_enable_registrations')===false) { 11 | show_error('Public registrations have been disabled.'); 12 | } 13 | } 14 | 15 | public function index() 16 | { 17 | $this->data['no_header'] = true; 18 | $this->data['no_footer'] = true; 19 | $this->view('register/index'); 20 | } 21 | 22 | public function user() 23 | { 24 | 25 | $email = (isset($this->db_clean->email)) ? $this->db_clean->email : null; 26 | $password = (isset($this->clean->password)) ? $this->clean->password : null; 27 | 28 | $this->data['success'] = false; 29 | $this->load->model('users_model', 'user'); 30 | $user = $this->user->create(array('email' => $email, 'password' => $password, 'active' => '1')); 31 | // print_r($user); 32 | // exit; 33 | // If good 34 | // Add user data to session 35 | // Set user id 36 | // Add defualt marks 37 | // Set redirect to /marks 38 | // Set default marks (can't really do this) 39 | if (isset($user->user_id)) { 40 | $this->sessionAddUser($user); 41 | 42 | // Set user id 43 | $this->user_id = $user->user_id; 44 | 45 | // Now add default marks to user account 46 | $default_marks = $this->config->item('new_account_links'); 47 | if (! empty($default_marks)) { 48 | foreach ($default_marks as $title => $arr) { 49 | $title = $this->db->escape_str($title); 50 | $url = $this->db->escape_str($arr['url']); 51 | $label_id = $this->db->escape_str($arr['label_id']); 52 | $res = parent::addMark(array('url' => $url, 'title' => $title, 'label_id' => $label_id)); 53 | } 54 | } 55 | 56 | // set redirect path 57 | $redirect = '/marks'; 58 | $this->data['success'] = true; 59 | $this->data['email'] = $email; 60 | 61 | } 62 | // If failure, get messages 63 | // Set to flash message 64 | // set redirect to root 65 | else { 66 | $redirect = '/register'; 67 | $this->setFlashMessage($user); 68 | foreach ($user as $error_code => $message) { 69 | $this->data['message'] = $message; 70 | } 71 | } 72 | 73 | // Redirect for web view or print for ajax call 74 | $this->figureView(null, $redirect); 75 | } 76 | 77 | } -------------------------------------------------------------------------------- /application/controllers/Singletons.php: -------------------------------------------------------------------------------- 1 | view('singletons/changelog', $data); 18 | } 19 | 20 | // Redirect folks awayz 21 | public function index() 22 | { 23 | header('Location: /'); 24 | exit; 25 | } 26 | 27 | // TOS 28 | public function terms() 29 | { 30 | $this->view('singletons/terms'); 31 | } 32 | 33 | // Reset password View 34 | public function reset($token=null) 35 | { 36 | $this->data['token'] = $token; 37 | $this->data['no_header'] = true; 38 | $this->data['no_footer'] = true; 39 | $this->view('singletons/reset'); 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /application/controllers/Tags.php: -------------------------------------------------------------------------------- 1 | load->model('tags_model', 'tags'); 14 | } 15 | 16 | public function index($page=1) 17 | { 18 | 19 | // Figure the correct starting page 20 | $page = (! is_numeric($page) || $page < 0) ? 1 : $page; 21 | 22 | // Where 23 | $where = "tags.tag_id > 0"; 24 | 25 | // Read the complete user marks records 26 | $tags = $this->tags->read($where, $this->limit, $page); 27 | 28 | // If no tags, return error 29 | // Else return tags 30 | if ($tags === false) { 31 | $this->data['errors'] = formatErrors(60); 32 | } 33 | else { 34 | $this->data['tags'] = $tags; 35 | $this->data = $this->tags->getTotals($where, $page, $this->limit, $this->data); 36 | } 37 | 38 | // Figure if web or API view 39 | $this->figureView(); 40 | } 41 | 42 | // Used to get a list of popular and recent tags 43 | // Primarily used for tag autocompletion. 44 | public function getAutocomplete() 45 | { 46 | 47 | $this->load->model('user_marks_to_tags_model', 'user_tags'); 48 | $this->data['tags'] = array(); 49 | $tags_popular = array(); 50 | $tags_recent = array(); 51 | 52 | $tags_popular = $this->user_tags->getPopular($this->user_id); 53 | $tags_recent = $this->user_tags->getMostRecent($this->user_id); 54 | 55 | if (is_array($tags_recent)) { 56 | $this->data['tags'] = array_merge( $tags_popular, $tags_recent); 57 | } 58 | 59 | // Figure if web or API view 60 | $this->figureView(); 61 | } 62 | 63 | public function add() 64 | { 65 | 66 | if (! isset($this->db_clean->name) || empty($this->db_clean->name)) { 67 | $this->data['errors'] = formatErrors(61); 68 | } 69 | else { 70 | $tag = $this->tags->create(array('name' => $this->db_clean->name)); 71 | 72 | if (isset($tag->tag_id)) { 73 | $this->data['tag'] = $tag; 74 | } 75 | elseif ($tag === false) { 76 | $this->data['errors'] = formatErrors(62); 77 | } 78 | else { 79 | $this->data['errors'] = $tag; 80 | } 81 | } 82 | 83 | // Figure view 84 | $this->figureView(); 85 | } 86 | 87 | } -------------------------------------------------------------------------------- /application/controllers/Welcome.php: -------------------------------------------------------------------------------- 1 | redirectIfLoggedIn('/marks'); 14 | $this->view('welcome', array('no_header' => true, 'no_footer' => true)); 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /application/controllers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/core/Plain_Config.php: -------------------------------------------------------------------------------- 1 | $v) { 53 | if (is_array($v)) { 54 | foreach ($v as $kk => $vv) { 55 | $this->config[$k][$kk] = $vv; 56 | } 57 | } 58 | else { 59 | $this->config[$k] = $v; 60 | } 61 | } 62 | unset($config); 63 | } 64 | break; 65 | } 66 | } 67 | 68 | // Return load 69 | return $load; 70 | } 71 | 72 | } -------------------------------------------------------------------------------- /application/core/Plain_Exceptions.php: -------------------------------------------------------------------------------- 1 | load->library('exceptional'); 24 | $CI->exceptional->createTrace($severity, $message, $filepath, $line); 25 | } 26 | } 27 | 28 | // Only show php errors on development 29 | public function show_php_error($severity, $message, $filepath, $line) 30 | { 31 | self::log_exception($severity, $message, $filepath, $line); 32 | parent::show_php_error($severity, $message, $filepath, $line); 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /application/core/Plain_Lang.php: -------------------------------------------------------------------------------- 1 | is_loaded, TRUE)) 30 | { 31 | return; 32 | } 33 | 34 | $config =& get_config(); 35 | 36 | if ($idiom == '') 37 | { 38 | $deft_lang = ( ! isset($config['language'])) ? 'english' : $config['language']; 39 | $idiom = ($deft_lang == '') ? 'english' : $deft_lang; 40 | } 41 | 42 | // Determine where the language file is and load it 43 | if ($alt_path != '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile)) 44 | { 45 | include($alt_path.'language/'.$idiom.'/'.$langfile); 46 | } 47 | else 48 | { 49 | $found = FALSE; 50 | // Places to search for language files - system, application and custom folders in that order 51 | // This way custom entries override application ones which override system ones 52 | $lookupPaths = array(); 53 | array_push($lookupPaths, BASEPATH); 54 | array_push($lookupPaths, APPPATH); 55 | array_push($lookupPaths, CUSTOMPATH); 56 | foreach ($lookupPaths as $package_path) 57 | { 58 | if (file_exists($package_path.'language/'.$idiom.'/'.$langfile)) 59 | { 60 | include($package_path.'language/'.$idiom.'/'.$langfile); 61 | $found = TRUE; 62 | } 63 | } 64 | 65 | if ($found !== TRUE) 66 | { 67 | show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile); 68 | } 69 | } 70 | 71 | 72 | if ( ! isset($lang)) 73 | { 74 | log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile); 75 | return; 76 | } 77 | 78 | if ($return == TRUE) 79 | { 80 | return $lang; 81 | } 82 | 83 | $this->is_loaded[] = $langfile; 84 | $this->language = array_merge($this->language, $lang); 85 | unset($lang); 86 | 87 | log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile); 88 | return TRUE; 89 | } 90 | 91 | } -------------------------------------------------------------------------------- /application/core/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/helpers/MY_url_helper.php: -------------------------------------------------------------------------------- 1 | config->site_url($CI->uri->uri_string()); 9 | return $_SERVER['QUERY_STRING'] ? $url.'?'.$_SERVER['QUERY_STRING'] : $url; 10 | } 11 | 12 | ?> -------------------------------------------------------------------------------- /application/helpers/hash_helper.php: -------------------------------------------------------------------------------- 1 | = 48 && $ord <= 57) ? true : $numeric; 83 | $lower = ($ord >= 65 && $ord <= 90) ? true : $lower; 84 | $upper = ($ord >= 97 && $ord <= 122) ? true : $upper; 85 | } 86 | 87 | return ($numeric === true && $lower === true && $upper === true) ? true : false; 88 | } 89 | 90 | function verifyHash($str, $hash) 91 | { 92 | return (crypt($str, $hash) == $hash) ? true : false; 93 | } -------------------------------------------------------------------------------- /application/helpers/hrecipe_helper.php: -------------------------------------------------------------------------------- 1 | find('.hrecipe'); 23 | 24 | if (isset($hrecipe) && is_array($hrecipe)) { 25 | $recipe = array(); 26 | 27 | // Parse recipe 28 | foreach($html->find('.fn') as $e) 29 | $recipe['title'] = $e->plaintext; 30 | 31 | foreach($html->find('.ingredient') as $e) 32 | $recipe['ingredients'][] = $e->plaintext; 33 | 34 | foreach($html->find('.yield') as $e) 35 | $recipe['yield'] = $e->plaintext; 36 | 37 | foreach($html->find('.instructions') as $e) 38 | $recipe['instructions'] = $e->plaintext; 39 | 40 | foreach($html->find('.duration') as $e) 41 | $recipe['duration'] = $e->plaintext; 42 | 43 | if (!isset($recipe['title']) || !isset($recipe['ingredients'])) { return false; } // Could be hCard 44 | 45 | $recipeHTML = '
'.$recipe['title'].'
'; 46 | 47 | if (isset($recipe['ingredients'])) { 48 | for($i=0;$i'; 50 | } 51 | } 52 | 53 | $recipeHTML .= '
'; 54 | 55 | if (isset($recipe['yield'])) { 56 | $recipeHTML .= ''.$recipe['yield'].''; 57 | } 58 | 59 | $recipeHTML .= '
'; 60 | 61 | unset($recipe); 62 | return $recipeHTML; 63 | 64 | } else { 65 | return false; 66 | 67 | } 68 | } 69 | 70 | 71 | ?> -------------------------------------------------------------------------------- /application/helpers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/helpers/view_helper.php: -------------------------------------------------------------------------------- 1 | 0) { 7 | return $num; 8 | } else { 9 | return '0'; 10 | } 11 | } 12 | 13 | // Checks current date with passed date and responsds with proper verbiage. 14 | function formatExpires($date) 15 | { 16 | $timestamp = strtotime($date); 17 | if (time() > $timestamp) { 18 | return "per Year"; // Expired 19 | } else { 20 | return "on " . date('m/d/Y', $timestamp); // Not Yet Expired 21 | } 22 | } 23 | 24 | // Takes a URL and returns a pretty looking version for view 25 | function niceUrl($url) 26 | { 27 | return rtrim(preg_replace('/https?:\/\/(www.)?/', '', $url), '/'); 28 | } 29 | 30 | 31 | // Get URL For Bookmarklet 32 | function getFullUrl() 33 | { 34 | return @( $_SERVER["HTTPS"] != 'on' ) ? 'http://'.$_SERVER["SERVER_NAME"] : 'https://'.$_SERVER["SERVER_NAME"]; 35 | } 36 | -------------------------------------------------------------------------------- /application/hooks/Unmark_Languages.php: -------------------------------------------------------------------------------- 1 | CI =& get_instance(); 15 | } 16 | 17 | /** 18 | * Loads language array 19 | * Returns all phrases 20 | */ 21 | public function loadLanguage() 22 | { 23 | $language_to_load = $this->CI->config->item('language'); 24 | $language_to_load = ( !isset($language_to_load) || empty($language_to_load) ) ? 'english' : $language_to_load; 25 | $language_file_to_load = APPPATH . 'language/' . $language_to_load . '.php'; 26 | 27 | if ( file_exists($language_file_to_load) ) : 28 | include( APPPATH . 'language/' . $language_to_load . '.php' ); 29 | $this->CI->config->set_item( 'phrases', $unmark_language ); // Load phrases into global config 30 | log_message('DEBUG', 'The "' . $language_to_load . '" language file has been loaded.'); 31 | else : 32 | log_message('ERROR', 'The "' . $language_to_load . '" language file could not be found.'); 33 | endif; 34 | 35 | } 36 | } 37 | 38 | /** 39 | * Loads a phrase 40 | * Accepts: Phrase (string), Phrase Plural (for backwards compatibilty) and number (0,1,2) 41 | * Returns: Prints singular or plural phrase if found 42 | * Error: If phrase not found it will log a message and respond with "Phrase not found." 43 | */ 44 | function unmark_phrase( $phrase, $phrase_plural='', $number=1 ) 45 | { 46 | // Load instance 47 | $CI =& get_instance(); 48 | 49 | // Load phrases from config 50 | $phrases = $CI->config->item('phrases'); 51 | 52 | //print_r($phrases); 53 | //exit; 54 | 55 | if ( !is_array($phrases) ) : 56 | return $phrase; 57 | endif; 58 | 59 | // Determine whether or not to use the plural phrase 60 | if ( $number == 0 || $number > 1 ) : 61 | $plural = 1; 62 | else : 63 | $plural = 0; 64 | endif; 65 | 66 | // Be sure language file contains phrase 67 | if ( array_key_exists( strtolower($phrase), $phrases ) ) : 68 | // See if language file has the singular or plural phrase, if not, default to singular 69 | if ( isset($phrases[strtolower($phrase)][$plural]) ) : 70 | return $phrases[strtolower($phrase)][$plural]; 71 | else : 72 | return $phrases[strtolower($phrase)][0]; 73 | endif; 74 | else : // Language file does not contain phrase, put something in Debug 75 | log_message('DEBUG', 'The phrase "' . $phrase . '" could not be found in the language file.'); 76 | return $phrase; 77 | endif; 78 | } 79 | -------------------------------------------------------------------------------- /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/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/language/phrases.php: -------------------------------------------------------------------------------- 1 | value entries describing 8 | * exported file. 9 | * @author kip9 10 | * 11 | */ 12 | class JSONImportStateMetaData implements JSONImportStateInterface{ 13 | 14 | private $importData; 15 | 16 | public function __construct($importData){ 17 | $this->importData = $importData; 18 | } 19 | 20 | /** 21 | * (non-PHPdoc) 22 | * @see JSONImportStateInterface::processLine() 23 | */ 24 | public function processLine($line){ 25 | // Change state 26 | if(mb_ereg_match("\"marks\"\:[ ]*\[.*", $line)){ 27 | return new JSONImportStateMarks($this->importData); 28 | } else{ 29 | // Strip trailing comma and simulate JSON 30 | $jsonLine = '{' . mb_ereg_replace("\\,[ ]*$", '', $line) . '}'; 31 | $decodedObject = json_decode($jsonLine); 32 | foreach($decodedObject as $key => $value){ 33 | if(!isset($this->importData['meta'])){ 34 | $this->importData['meta'] = array(); 35 | } 36 | $this->importData['meta'][$key] = $value; 37 | } 38 | return $this; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /application/libraries/JSONImportStateMachine/JSONImportStateStart.php: -------------------------------------------------------------------------------- 1 | importData = $importData; 17 | } 18 | 19 | /** 20 | * (non-PHPdoc) 21 | * @see JSONImportStateInterface::processLine() 22 | */ 23 | public function processLine($line){ 24 | // Change state 25 | if(mb_ereg_match("\"export\"\:[ ]*\{.*", $line)){ 26 | return new JSONImportStateMetaData($this->importData); 27 | } else{ 28 | return $this; 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /application/libraries/JSONImportStateMachine/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/libraries/Plain_Cache.php: -------------------------------------------------------------------------------- 1 | $method(); 17 | } 18 | } 19 | else { 20 | return false; 21 | } 22 | } 23 | return false; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /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/migrations/002_archive_stats.php: -------------------------------------------------------------------------------- 1 | dbforge->add_column('users_marks', array('datearchived timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP')); 15 | } 16 | 17 | public function down() 18 | { 19 | parent::checkForColumns('datearchived', 'users_marks'); 20 | $this->dbforge->drop_column('users_marks','datearchived'); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /application/migrations/003_users_update.php: -------------------------------------------------------------------------------- 1 | db->query('ALTER TABLE `users` CHANGE COLUMN `id` `user_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT'); 15 | $this->db->query('ALTER TABLE `users` DROP PRIMARY KEY, ADD PRIMARY KEY (`user_id`)'); 16 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `emailaddress` `email` varchar(255) NOT NULL'); 17 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `password` `password` varchar(150) NOT NULL'); 18 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `datejoined` `date_joined` datetime NOT NULL'); 19 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `status` `status` varchar(25) NOT NULL DEFAULT \'inactive\''); 20 | $this->db->query('ALTER TABLE `users` ADD COLUMN `last_updated` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER `status`'); 21 | $this->db->query('ALTER TABLE `users` DROP INDEX `emailaddress`'); 22 | $this->db->query('ALTER TABLE `users` ADD UNIQUE `email`(email)'); 23 | } 24 | 25 | public function down() 26 | { 27 | 28 | parent::checkForColumns(array('user_id', 'email', 'password', 'date_joined', 'status', 'last_updated'), 'users'); 29 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `user_id` `id` bigint(11) NOT NULL AUTO_INCREMENT'); 30 | $this->db->query('ALTER TABLE `users` DROP PRIMARY KEY, ADD PRIMARY KEY (`id`)'); 31 | $this->db->query('ALTER TABLE `users` DROP COLUMN `last_updated`'); 32 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `email` `emailaddress` varchar(255) NOT NULL'); 33 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `password` `password` varchar(255) NOT NULL'); 34 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `date_joined` `datejoined` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP'); 35 | $this->db->query('ALTER TABLE `users` CHANGE COLUMN `status` `status` varchar(255) NOT NULL'); 36 | $this->db->query('ALTER TABLE `users` DROP INDEX `email`'); 37 | $this->db->query('ALTER TABLE `users` ADD UNIQUE `emailaddress`(emailaddress)'); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /application/migrations/004_password_update.php: -------------------------------------------------------------------------------- 1 | db->query("ALTER TABLE `users` ADD COLUMN `salt` varchar(50) DEFAULT NULL COMMENT 'The salt used to generate password.' AFTER `password`"); 15 | } 16 | 17 | public function down() 18 | { 19 | parent::checkForColumns('salt', 'users'); 20 | $this->db->query("ALTER TABLE `users` DROP COLUMN `salt`"); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /application/migrations/005_users_admin_flag.php: -------------------------------------------------------------------------------- 1 | db->query("ALTER TABLE `users` ADD COLUMN `admin` tinyint(1) NOT NULL DEFAULT 0 AFTER `last_updated`"); 15 | } 16 | 17 | public function down() 18 | { 19 | parent::checkForColumns('admin', 'users'); 20 | $this->db->query("ALTER TABLE `users` DROP COLUMN `admin`"); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /application/migrations/006_plain_sessions.php: -------------------------------------------------------------------------------- 1 | db->query("CREATE TABLE IF NOT EXISTS `plain_sessions` ( 14 | session_id varchar(40) NOT NULL COMMENT 'Unique session identifier', 15 | session_data text NOT NULL COMMENT 'Serialized session data', 16 | last_updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Last updated at', 17 | PRIMARY KEY (session_id) 18 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"); 19 | } 20 | 21 | public function down() 22 | { 23 | // Drop tables 24 | $this->dbforge->drop_table('plain_sessions'); 25 | } 26 | } -------------------------------------------------------------------------------- /application/migrations/008_user_token.php: -------------------------------------------------------------------------------- 1 | db->query("ALTER TABLE `users` CHANGE COLUMN `user_token` `user_token` varchar(62) NOT NULL COMMENT 'Unique user token.'"); 17 | 18 | // Update all users 19 | $users = $this->db->query("SELECT user_id, user_token, created_on FROM `users`"); 20 | if ($users->num_rows() > 0) { 21 | foreach ($users->result() as $user) { 22 | $res = $this->db->query("UPDATE `users` SET user_token = '" . $user->user_token . md5($user->created_on) . "' WHERE user_id = '" . $user->user_id . "'"); 23 | } 24 | } 25 | } 26 | 27 | public function down() 28 | { 29 | // Back to original 30 | $this->db->query("ALTER TABLE `users` CHANGE COLUMN `user_token` `user_token` varchar(30) NOT NULL COMMENT 'Unique user token.'"); 31 | } 32 | } -------------------------------------------------------------------------------- /application/migrations/009_delete_marks.php: -------------------------------------------------------------------------------- 1 | db->query("ALTER TABLE `users_to_marks` ADD COLUMN `active` tinyint(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Set to 1 for active, 0 for inactive.' AFTER `notes`"); 16 | 17 | } 18 | 19 | public function down() 20 | { 21 | parent::checkForColumns('active', 'users_to_marks'); 22 | $this->db->query("ALTER TABLE `users_to_marks` DROP COLUMN `active`"); 23 | } 24 | } -------------------------------------------------------------------------------- /application/migrations/010_tokens.php: -------------------------------------------------------------------------------- 1 | db->query(" 16 | CREATE TABLE IF NOT EXISTS `tokens` ( 17 | `token_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Token ID auto generated', 18 | `user_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL COMMENT 'User ID that token belongs to', 19 | `token_type` ENUM('FORGOT_PASSWORD') NOT NULL COMMENT 'Token type enum', 20 | `token_value` VARCHAR(64) NOT NULL COMMENT 'Generated token', 21 | `created_on` DATETIME NOT NULL COMMENT 'Creation date', 22 | `valid_until` DATETIME NOT NULL COMMENT 'Expiration date', 23 | `active` TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'Active flag', 24 | `used_on` DATETIME NULL DEFAULT NULL COMMENT 'Date when token was successfully used', 25 | PRIMARY KEY (`token_id`), 26 | UNIQUE INDEX `token_value_UNIQUE` (`token_value` ASC), 27 | INDEX `token_type_user_id_active_IDX` (`token_type` ASC, `user_id` ASC, `active` ASC), 28 | CONSTRAINT `tokens_user_id_FK` 29 | FOREIGN KEY (`user_id`) 30 | REFERENCES `users` (`user_id`) 31 | ON DELETE CASCADE 32 | ON UPDATE CASCADE) ENGINE InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 33 | "); 34 | } 35 | 36 | public function down() 37 | { 38 | // Drop tables 39 | $this->dbforge->drop_table('tokens'); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /application/migrations/2014022801_label_sort.php: -------------------------------------------------------------------------------- 1 | db->query("ALTER TABLE `labels` ADD COLUMN `order` tinyint(3) UNSIGNED DEFAULT NULL COMMENT 'The order to sort static system level labels.' AFTER `slug`"); 16 | 17 | // Now update all current system level labels to add correct order 18 | $slugs = array('read', 'watch', 'listen', 'buy', 'eat-drink', 'do', 'unlabeled'); 19 | foreach ($slugs as $k => $slug) { 20 | $order = $k + 1; 21 | $this->db->query("UPDATE `labels` SET labels.order = '" . $order . "' WHERE labels.slug = '" . $slug . "'"); 22 | } 23 | 24 | } 25 | 26 | public function down() 27 | { 28 | parent::checkForColumns('order', 'labels'); 29 | $this->db->query("ALTER TABLE `labels` DROP COLUMN `order`"); 30 | } 31 | } -------------------------------------------------------------------------------- /application/migrations/2014112501_user_titles.php: -------------------------------------------------------------------------------- 1 | db->query("ALTER TABLE `users_to_marks` ADD COLUMN `mark_title` text DEFAULT NULL COMMENT 'An optional user-specific mark title.' AFTER `mark_id`"); 19 | 20 | } 21 | 22 | public function down() 23 | { 24 | parent::checkForColumns('mark_title', 'users_to_marks'); 25 | $this->db->query("ALTER TABLE `users_to_marks` DROP COLUMN `mark_title`"); 26 | } 27 | } -------------------------------------------------------------------------------- /application/migrations/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/models/Marks_model.php: -------------------------------------------------------------------------------- 1 | data_types = array( 16 | 'title' => 'string', 17 | 'url' => 'url', 18 | 'url_key' => 'md5', 19 | 'embed' => 'string', 20 | 'created_on' => 'datetime' 21 | ); 22 | 23 | } 24 | 25 | public function create($options=array()) 26 | { 27 | return $this->validateAndSave($options, true); 28 | } 29 | 30 | private function validateAndSave($options, $overwriteCreatedOn){ 31 | $valid = validate($options, $this->data_types, array('title', 'url')); 32 | 33 | // Make sure all the options are valid 34 | if ($valid === true) { 35 | 36 | // Make sure url doesn't already exist 37 | $md5 = md5($options['url']); 38 | $mark = $this->read("url_key = '" . $md5 . "'", 1, 1); 39 | 40 | // If not found, add it 41 | if (! isset($mark->mark_id)) { 42 | if($overwriteCreatedOn || empty($options['created_on'])){ 43 | $options['created_on'] = date('Y-m-d H:i:s'); 44 | } 45 | $options['url_key'] = $md5; 46 | $q = $this->db->insert_string('marks', $options); 47 | $res = $this->db->query($q); 48 | 49 | // Check for errors 50 | $this->sendException(); 51 | 52 | // Return mark_id 53 | if ($res === true) { 54 | $mark_id = $this->db->insert_id(); 55 | return $this->read($mark_id); 56 | } 57 | 58 | return false; 59 | } 60 | 61 | // If already exists, just return it 62 | return $mark; 63 | } 64 | 65 | return formatErrors($valid); 66 | } 67 | 68 | /** 69 | * Import existing object and save to DB 70 | * @param array $options 71 | */ 72 | public function import($options){ 73 | return $this->validateAndSave($options, false); 74 | } 75 | 76 | } -------------------------------------------------------------------------------- /application/models/Tags_model.php: -------------------------------------------------------------------------------- 1 | data_types = array( 16 | 'name' => 'string', 17 | 'slug' => 'string' 18 | ); 19 | 20 | } 21 | 22 | public function create($options=array()) 23 | { 24 | 25 | $valid = validate($options, $this->data_types, array('name')); 26 | 27 | // Make sure all the options are valid 28 | if ($valid === true) { 29 | 30 | 31 | // See if this record already exists 32 | $options['slug'] = generateSlug($options['name']); 33 | $tag = $this->read("tags.slug = '" . $options['slug'] . "'", 1, 1); 34 | 35 | // If not, add it 36 | if (! isset($tag->tag_id)) { 37 | $q = $this->db->insert_string($this->table, $options); 38 | $res = $this->db->query($q); 39 | 40 | // Check for errors 41 | $this->sendException(); 42 | 43 | // If good, return full label 44 | if ($res === true) { 45 | $tag_id = $this->db->insert_id(); 46 | return $this->read($tag_id); 47 | } 48 | 49 | // Else return error 50 | return false; 51 | } 52 | 53 | // If already exists, just return it 54 | return $tag; 55 | 56 | } 57 | 58 | return formatErrors($valid); 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /application/models/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/third_party/PHP-Markdown-1.2.5/License.text: -------------------------------------------------------------------------------- 1 | PHP Markdown & Extra 2 | Copyright (c) 2004-2009 Michel Fortin 3 | 4 | All rights reserved. 5 | 6 | Based on Markdown 7 | Copyright (c) 2003-2006 John Gruber 8 | 9 | All rights reserved. 10 | 11 | Redistribution and use in source and binary forms, with or without 12 | modification, are permitted provided that the following conditions are 13 | met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name "Markdown" nor the names of its contributors may 23 | be used to endorse or promote products derived from this software 24 | without specific prior written permission. 25 | 26 | This software is provided by the copyright holders and contributors "as 27 | is" and any express or implied warranties, including, but not limited 28 | to, the implied warranties of merchantability and fitness for a 29 | particular purpose are disclaimed. In no event shall the copyright owner 30 | or contributors be liable for any direct, indirect, incidental, special, 31 | exemplary, or consequential damages (including, but not limited to, 32 | procurement of substitute goods or services; loss of use, data, or 33 | profits; or business interruption) however caused and on any theory of 34 | liability, whether in contract, strict liability, or tort (including 35 | negligence or otherwise) arising in any way out of the use of this 36 | software, even if advised of the possibility of such damage. 37 | -------------------------------------------------------------------------------- /application/third_party/PHP-Markdown-1.2.5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

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

Directory access is forbidden.

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

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/errors/cli/error_404.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | An uncaught Exception was encountered 4 | 5 | Type: 6 | Message: 7 | Filename: getFile(), "\n"; ?> 8 | Line Number: getLine(); ?> 9 | 10 | 11 | 12 | Backtrace: 13 | getTrace() as $error): ?> 14 | 15 | File: 16 | Line: 17 | Function: 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /application/views/errors/cli/error_general.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | A PHP Error was encountered 4 | 5 | Severity: 6 | Message: 7 | Filename: 8 | Line Number: 9 | 10 | 11 | 12 | Backtrace: 13 | 14 | 15 | File: 16 | Line: 17 | Function: 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /application/views/errors/cli/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/views/errors/html/error_404.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sorry, we can't find this page 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 |

Page Not Found

13 |

Sorry, the page you are looking for is no where to be found. Try restarting your journey here.

14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /application/views/errors/html/error_db.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Eek, something is wrong 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 |

13 |

14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /application/views/errors/html/error_general.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Eek, something is wrong 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 |

13 |

14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /application/views/errors/html/error_php.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |

An unexpected error has occured

5 |

The issue has been logged and will be taken care of shortly.

6 | 7 |

A PHP Error was encountered

8 |

Severity:

9 |

Message:

10 |

Filename:

11 |

Line Number:

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

Directory access is forbidden.

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

Directory access is forbidden.

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

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/import/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | <?php echo unmark_phrase('Unmark : Importer'); ?> 4 | 5 | 6 | 7 | 8 | 9 |
10 |
11 |
12 |

' . unmark_phrase('Sorry, there was an error.').'

'; 15 | print '

' . unmark_phrase('Please make sure you have a valid export.json file.') . '

'; 16 | print unmark_phrase(' Go back & try again'); 17 | if (isset($errors) ) { 18 | foreach($errors as $prop) { 19 | $first = $prop; 20 | break; 21 | } 22 | print '

'. sprintf(unmark_phrase('ERROR: %s'), $first) . '

'; 23 | } 24 | } else { 25 | print '

' . unmark_phrase('Successful Upload!') . '

'; 26 | print '

' . sprintf(unmark_phrase('%s marks added', '%s marks added', $result['added']), $result['added']) . '

'; 27 | print '

' . sprintf(unmark_phrase('%s marks skipped', '%s marks skipped', $result['skipped']), $result['skipped']) . '

'; 28 | print '

' . sprintf(unmark_phrase('%s marks failed', '%s marks failed', $result['failed']), $result['failed']) . '

'; 29 | print '

' . sprintf(unmark_phrase('%s marks total', '%s marks total', $result['total']), $result['total']) . '

'; 30 | print unmark_phrase(' Go back & see them'); 31 | } 32 | ?> 33 |
34 |
35 |
36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /application/views/json/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/json/index.php: -------------------------------------------------------------------------------- 1 | 2 | ' . ((isset($user)) ? $user['email'] : '') . ''); ?> 3 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /application/views/layouts/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | load->view('layouts/footer_scripts')?> 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /application/views/layouts/footer_scripts.php: -------------------------------------------------------------------------------- 1 | load->view('layouts/userforms'); ?> 2 | 3 | load->view('layouts/jsvars'); ?> 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /application/views/layouts/footer_unlogged_scripts.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /application/views/layouts/jsvars.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /application/views/layouts/navigation.php: -------------------------------------------------------------------------------- 1 | 4 | 13 | -------------------------------------------------------------------------------- /application/views/layouts/navigation/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/layouts/navigation/nav_helper.php: -------------------------------------------------------------------------------- 1 |
  • 2 |
  • 3 |
  • 4 | 5 | 6 | -------------------------------------------------------------------------------- /application/views/layouts/sidebar.php: -------------------------------------------------------------------------------- 1 | 3 | 16 | 0) : ?> 17 | 25 | 26 | 27 | 28 | 34 | 35 | load->view('layouts/sidebar/sidebar_notices'); ?> 36 | 37 | */ ?> 38 | 39 | -------------------------------------------------------------------------------- /application/views/layouts/sidebar/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

    Directory access is forbidden.

    8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/layouts/sidebar/sidebar_notices.php: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /application/views/layouts/timeline.php: -------------------------------------------------------------------------------- 1 |
    2 |
      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 | 29 |
    30 |
    31 | -------------------------------------------------------------------------------- /application/views/layouts/topbar/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

    Directory access is forbidden.

    8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/layouts/topbar/searchform.php: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 | 5 | 6 | 7 | 8 |
    9 | 17 |
    18 | 19 |
    20 | 21 | 22 | 23 |
    24 | 25 |
    26 | -------------------------------------------------------------------------------- /application/views/marks/error.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <?php echo unmark_phrase('Sorry, Could Not Add this Mark'); ?> 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    12 |

    Yikes!

    13 |

    14 |

    15 |

    BACK 16 |

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

    Directory access is forbidden.

    8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/partials/debug.php: -------------------------------------------------------------------------------- 1 |
    2 |

    Debug information - only shown for admins

    3 |
    4 | 5 |
    Page Data
    6 |
     7 |         
     8 |     
    9 | 10 |
    Session Variables
    11 |
    12 |         
    13 |     
    14 | 15 |
    Cookie Variables
    16 |
    17 |         
    18 |     
    19 | 20 |
    Server Variables
    21 |
    22 |         
    23 |     
    24 |
    -------------------------------------------------------------------------------- /application/views/partials/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

    Directory access is forbidden.

    8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/setup.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | <?php echo unmark_phrase('Unmark: Setup') ?> 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 |
    22 | 23 |

    config->item('unmark_version') . ' of the app.

    Please read the installation instructions first.'); ?>

    24 | 25 | 26 | 27 |
    28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /application/views/singletons/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

    Directory access is forbidden.

    8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | RewriteEngine On 3 | 4 | ### 5 | # Check for assets request under custom folder 6 | # If exists use it, if not skip and load as normal 7 | ### 8 | 9 | RewriteCond %{DOCUMENT_ROOT}/custom/%{REQUEST_URI} -f 10 | RewriteRule ^(.*) /custom/assets/$1 [L,QSA] 11 | -------------------------------------------------------------------------------- /assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 -------------------------------------------------------------------------------- /assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 -------------------------------------------------------------------------------- /assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 -------------------------------------------------------------------------------- /assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 -------------------------------------------------------------------------------- /assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 -------------------------------------------------------------------------------- /assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 -------------------------------------------------------------------------------- /assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 -------------------------------------------------------------------------------- /assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 -------------------------------------------------------------------------------- /assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 -------------------------------------------------------------------------------- /assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 -------------------------------------------------------------------------------- /assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 -------------------------------------------------------------------------------- /assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 -------------------------------------------------------------------------------- /assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 -------------------------------------------------------------------------------- /assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdg18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdg18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdh18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdh18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdj18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdj18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdo18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdo18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18Q.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18Q.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdv18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdv18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidg18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidg18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidh18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidh18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidj18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidj18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkido18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkido18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18Q.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18Q.woff2 -------------------------------------------------------------------------------- /assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidv18Smxg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidv18Smxg.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 -------------------------------------------------------------------------------- /assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/css/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 -------------------------------------------------------------------------------- /assets/images/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/demo.gif -------------------------------------------------------------------------------- /assets/images/feature_bookmarklet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/feature_bookmarklet.jpg -------------------------------------------------------------------------------- /assets/images/feature_chrome.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/feature_chrome.jpg -------------------------------------------------------------------------------- /assets/images/feature_git.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/feature_git.jpg -------------------------------------------------------------------------------- /assets/images/feature_import.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/feature_import.jpg -------------------------------------------------------------------------------- /assets/images/feature_notes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/feature_notes.jpg -------------------------------------------------------------------------------- /assets/images/feature_preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/feature_preview.jpg -------------------------------------------------------------------------------- /assets/images/feature_tweet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/feature_tweet.jpg -------------------------------------------------------------------------------- /assets/images/icons/archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/archive.png -------------------------------------------------------------------------------- /assets/images/icons/bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/bell.png -------------------------------------------------------------------------------- /assets/images/icons/big_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/big_close.png -------------------------------------------------------------------------------- /assets/images/icons/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/check.png -------------------------------------------------------------------------------- /assets/images/icons/check_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/check_dark.png -------------------------------------------------------------------------------- /assets/images/icons/circle_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/circle_arrow_down.png -------------------------------------------------------------------------------- /assets/images/icons/circle_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/circle_arrow_up.png -------------------------------------------------------------------------------- /assets/images/icons/circle_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/circle_check.png -------------------------------------------------------------------------------- /assets/images/icons/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/down.png -------------------------------------------------------------------------------- /assets/images/icons/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/edit.png -------------------------------------------------------------------------------- /assets/images/icons/ellipsis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/ellipsis.png -------------------------------------------------------------------------------- /assets/images/icons/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/github.png -------------------------------------------------------------------------------- /assets/images/icons/go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/go.png -------------------------------------------------------------------------------- /assets/images/icons/goto_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/goto_link.png -------------------------------------------------------------------------------- /assets/images/icons/goto_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/goto_title.png -------------------------------------------------------------------------------- /assets/images/icons/heading_archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/heading_archive.png -------------------------------------------------------------------------------- /assets/images/icons/heading_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/heading_close.png -------------------------------------------------------------------------------- /assets/images/icons/heading_collapse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/heading_collapse.png -------------------------------------------------------------------------------- /assets/images/icons/heading_expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/heading_expand.png -------------------------------------------------------------------------------- /assets/images/icons/heading_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/heading_search.png -------------------------------------------------------------------------------- /assets/images/icons/heading_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/heading_tag.png -------------------------------------------------------------------------------- /assets/images/icons/heading_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/heading_time.png -------------------------------------------------------------------------------- /assets/images/icons/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

    Directory access is forbidden.

    8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/images/icons/label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/label.png -------------------------------------------------------------------------------- /assets/images/icons/large_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/large_check.png -------------------------------------------------------------------------------- /assets/images/icons/large_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/large_x.png -------------------------------------------------------------------------------- /assets/images/icons/links.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/links.png -------------------------------------------------------------------------------- /assets/images/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/logo.png -------------------------------------------------------------------------------- /assets/images/icons/logo_text_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/logo_text_dark.png -------------------------------------------------------------------------------- /assets/images/icons/logo_text_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/logo_text_light.png -------------------------------------------------------------------------------- /assets/images/icons/logo_text_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/logo_text_white.png -------------------------------------------------------------------------------- /assets/images/icons/menu_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/menu_close.png -------------------------------------------------------------------------------- /assets/images/icons/menu_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/menu_open.png -------------------------------------------------------------------------------- /assets/images/icons/option_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/option_down.png -------------------------------------------------------------------------------- /assets/images/icons/option_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/option_up.png -------------------------------------------------------------------------------- /assets/images/icons/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/search.png -------------------------------------------------------------------------------- /assets/images/icons/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/settings.png -------------------------------------------------------------------------------- /assets/images/icons/small_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/small_check.png -------------------------------------------------------------------------------- /assets/images/icons/small_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/small_x.png -------------------------------------------------------------------------------- /assets/images/icons/spinner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/spinner.png -------------------------------------------------------------------------------- /assets/images/icons/time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/time.png -------------------------------------------------------------------------------- /assets/images/icons/unarchive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/unarchive.png -------------------------------------------------------------------------------- /assets/images/icons/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/up.png -------------------------------------------------------------------------------- /assets/images/icons/upgrade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/icons/upgrade.png -------------------------------------------------------------------------------- /assets/images/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

    Directory access is forbidden.

    8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo.png -------------------------------------------------------------------------------- /assets/images/logo/android-chrome-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/android-chrome-150.png -------------------------------------------------------------------------------- /assets/images/logo/android-chrome-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/android-chrome-180.png -------------------------------------------------------------------------------- /assets/images/logo/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/android-chrome-192x192.png -------------------------------------------------------------------------------- /assets/images/logo/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/android-chrome-512x512.png -------------------------------------------------------------------------------- /assets/images/logo/bookmark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/bookmark.jpg -------------------------------------------------------------------------------- /assets/images/logo/bookmark90.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/bookmark90.jpg -------------------------------------------------------------------------------- /assets/images/logo/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/favicon-16x16.png -------------------------------------------------------------------------------- /assets/images/logo/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/favicon-32x32.png -------------------------------------------------------------------------------- /assets/images/logo/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/favicon.ico -------------------------------------------------------------------------------- /assets/images/logo/logo-wide-128-70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/logo-wide-128-70.png -------------------------------------------------------------------------------- /assets/images/logo/logo-wide-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/logo-wide-big.png -------------------------------------------------------------------------------- /assets/images/logo/logo128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/logo128.png -------------------------------------------------------------------------------- /assets/images/logo/logo64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo/logo64.png -------------------------------------------------------------------------------- /assets/images/logo_text_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/logo_text_light.png -------------------------------------------------------------------------------- /assets/images/pwa/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/pwa/android-chrome-192x192.png -------------------------------------------------------------------------------- /assets/images/pwa/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/pwa/android-chrome-512x512.png -------------------------------------------------------------------------------- /assets/images/pwa/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/pwa/apple-touch-icon.png -------------------------------------------------------------------------------- /assets/images/pwa/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/pwa/favicon-16x16.png -------------------------------------------------------------------------------- /assets/images/pwa/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/pwa/favicon-32x32.png -------------------------------------------------------------------------------- /assets/images/pwa/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

    Directory access is forbidden.

    8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/images/pwa/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/assets/images/pwa/mstile-150x150.png -------------------------------------------------------------------------------- /assets/images/pwa/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /assets/js/plugins/unmark-graph.js: -------------------------------------------------------------------------------- 1 | /*! 2 | Graph Main scripts for Unmark.it 3 | REQUIRES - Chart.min.js file 4 | */ 5 | 6 | 7 | if (unmark === undefined) { var unmark = {}; } 8 | if (unmark.graph === undefined) { unmark.graph = {}; } 9 | 10 | (function ($) { 11 | 12 | unmark.createGraph = function (a4, a3, a2, a1, a, s4, s3, s2, s1, s) { 13 | 14 | var lineChartData, lineChartOptions, chartElement; 15 | 16 | lineChartElement = document.getElementById("unmark-graph").getContext("2d"); 17 | 18 | lineChartData = { 19 | labels : ["4 Days Ago","3 Days Ago","2 Days Ago", "Yesterday", "Today"], 20 | datasets : [ 21 | { 22 | // Archived Settings 23 | strokeColor : "#DCDCDC", 24 | pointColor : "#C1C1C1", 25 | pointStrokeColor : "#fff", 26 | data : [a4, a3, a2, a1, a] 27 | }, 28 | { 29 | // Saved Settings 30 | strokeColor : "#B8B7B7", 31 | pointColor : "#777777", 32 | pointStrokeColor : "#fff", 33 | data : [s4, s3, s2, s1, s] 34 | } 35 | ] 36 | 37 | } 38 | 39 | lineChartOptions = { 40 | scaleShowLabels : false, 41 | scaleShowGridLines : false, 42 | datasetFill : false, 43 | bezierCurve : false, 44 | scaleLineColor: 'transparent', 45 | scaleFontColor: 'transparent' 46 | } 47 | 48 | new Chart(lineChartElement).Line(lineChartData, lineChartOptions); 49 | 50 | }; 51 | 52 | }(window.jQuery)); -------------------------------------------------------------------------------- /bookmarklets/unmark_autoclose.js: -------------------------------------------------------------------------------- 1 | /* 2 | Unmark Bookmarklet: Auto Close 3 | This bookmarklet will open a small window, save the current page to Unmark, then close the window in one second. 4 | */ 5 | 6 | 7 | // Full 8 | 9 | javascript: (function () { 10 | l = 'https://unmark.it/mark/add?url=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&v=2&nowindow=yes&'; 11 | var w = window.open(l + 'noui=1', 'Unmark_AutoClose', 'location=0,links=0,scrollbars=0,toolbar=0,width=5,height=5'); 12 | w.blur(); window.focus(); 13 | setTimeout(function () { 14 | w.close(); 15 | }, 1000); 16 | })(); 17 | 18 | // Minified 19 | 20 | javascript:(function(){l="https://unmark.it/mark/add?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title)+"&v=2&nowindow=yes&";var e=window.open(l+"noui=1","Unmark_AutoClose","location=0,links=0,scrollbars=0,toolbar=0,width=5,height=5");e.blur();window.focus();setTimeout(function(){e.close()},1000)})() 21 | 22 | // URL Encoded in Link 23 | 24 | Unmark Auto-Close + -------------------------------------------------------------------------------- /bookmarklets/unmark_default.js: -------------------------------------------------------------------------------- 1 | /* 2 | Unmark Bookmarklet: Default 3 | This bookmarklet will open a window, allow the user to choose a label and add notes. 4 | */ 5 | 6 | 7 | // Full 8 | 9 | javascript: (function () { 10 | l = 'https://unmark.it/mark/add?url=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&v=1&nowindow=yes&'; 11 | var w = window.open(l + 'noui=1', 'Unmark', 'location=0,links=0,scrollbars=0,toolbar=0,width=594,height=615'); 12 | })(); 13 | 14 | // Minified 15 | 16 | javascript:(function(){l="https://unmark.it/mark/add?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title)+"&v=1&nowindow=yes&";var e=window.open(l+"noui=1","Unmark","location=0,links=0,scrollbars=0,toolbar=0,width=594,height=615")})() 17 | 18 | // URL Encoded in Link 19 | 20 | Unmark + 21 | -------------------------------------------------------------------------------- /browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #13293d 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /custom_example/readme.md: -------------------------------------------------------------------------------- 1 | ## Custom Directory 2 | Please go [here](https://github.com/cdevroe/unmark/wiki/Custom) to read more about this. -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | ## 2 | ## Docker Containers 3 | ## This creates containers running mySQL and WordPress 4 | ## for running Unmark. 5 | ## 6 | ## Written by Colin Devroe cdevroe.com 7 | ## 8 | ## Version 1.0 Build 001 9 | ## 10 | 11 | version: '3.3' 12 | 13 | services: 14 | apache: 15 | container_name: unmark_apache 16 | build: 17 | context: ./ 18 | image: php:5.6-apache 19 | hostname: apache 20 | ports: 21 | - "80:80" 22 | volumes: 23 | - ./:/var/www/html 24 | - ./docker-configs/php-custom.ini:/usr/local/etc/php/conf.d/custom.ini 25 | depends_on: 26 | - mysql 27 | links: 28 | - mysql 29 | mysql: 30 | container_name: unmark_mysql 31 | image: mysql:5.7 32 | hostname: mysql 33 | command: --sql_mode='' 34 | ports: 35 | - "3306:3306" 36 | volumes: 37 | - unmark_db_volume:/var/lib/mysql 38 | environment: 39 | MYSQL_ROOT_PASSWORD: unmarkrootmysqlpass 40 | MYSQL_DATABASE: unmark 41 | MYSQL_USER: unmarkuser 42 | MYSQL_PASSWORD: unmarkpass 43 | phpmyadmin: 44 | container_name: unmark_phpmyadmin 45 | image: phpmyadmin/phpmyadmin 46 | links: 47 | - mysql:db 48 | ports: 49 | - "8082:80" 50 | environment: 51 | - PMA_USER=unmarkuser 52 | - PMA_PASSWORD=unmarkpass 53 | - PHP_UPLOAD_MAX_FILESIZE=100MB 54 | volumes: 55 | unmark_db_volume: 56 | -------------------------------------------------------------------------------- /docker-configs/php-custom.ini: -------------------------------------------------------------------------------- 1 | date.timezone = "UTC" 2 | ##extension=mysqli.so -------------------------------------------------------------------------------- /export-schema.md: -------------------------------------------------------------------------------- 1 | Unmark's Export JSON Schema 2 | =============================== 3 | 4 | Unmark's Export JSON file should be thought of as more of a backup of someone's Unmark installation moreso than an export/import from other services. This document is simply made to help those that would like to understand the schema. 5 | 6 | Here is an example... 7 | 8 | ``` 9 | { 10 | "export": { 11 | "export_version": 1, 12 | "export_date": "2016-09-15 07:45:30", 13 | "marks_count": 163, 14 | "marks": [ 15 | {"mark_id":"1","mark_title":null,"notes":null,"active":"1","created_on":"2016-09-13 20:40:20","archived_on":null,"title":"Read Unmark's FAQ","url":"http:\/\/help.unmark.it\/faq","embed":null,"label_id":"7","label_name":"Do","tags":{},"nice_time":"1 day ago"}, 16 | {"mark_id":"2","mark_title":null,"notes":null,"active":"1","created_on":"2016-09-13 20:40:20","archived_on":null,"title":"How To Use Unmark","url":"http:\/\/help.unmark.it","embed":null,"label_id":"7","label_name":"Do","tags":{},"nice_time":"1 day ago"} 17 | ] 18 | } 19 | } 20 | ``` 21 | 22 | - **export_version** - used internally to denote the version of the export. Currently the only option is 1. 23 | - **export_date** - unused by the importer, but created for reference for the user. 24 | - **marks_count** - The total number of marks exported. Unused by importer. 25 | - **marks** - All metadata related to the bookmarks exported. 26 | - **mark_id** - (optional) If provided, will set as the mark ID in the database. 27 | - **mark_title** - (optional) The user-specified title of a mark. Used only if the user customized the title of the bookmark in Unmark. 28 | - **notes** - (optional) The user's notes for the bookmark. 29 | - **active** - (boolean) 1 if active, 0 if not (deleted) 30 | - **created_on** - The date the mark was created 31 | - **archived_on** - The date the mark was archived (or marked completed) by the user. If present the mark is considered archived. 32 | - **title** - The mark's title as provided, typically, from the Unmark bookmarklet or Chrome extension. Usually the URL's 33 | - **url** - The URL of the bookmark. 34 | - **embed** - Used within Unmark to "preview" a bookmark. Typically a YouTube or Soundcloud embed but could also be an hrecipe. 35 | - **label_id** - The ID of the label for the mark used by Unmark 36 | - **label_name** - The name of the label (Read, Watch, Listen, Eat & Drink, or Do -- also, custom labels coming soon) 37 | - **tags** (object/array) - The tags associated with this bookmark. 38 | - **nice_time** - The nice time relative to the created_on date. E.g. "1 day ago" 39 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/favicon.ico -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | == UNMARK LICENSE == 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2013-2019 Colin Devroe, Kyle Ruane, Plain, Unmark 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | 25 | == CODEIGNITER LICENSE == 26 | The MIT License (MIT) 27 | 28 | Copyright (c) 2014 - 2019, British Columbia Institute of Technology 29 | 30 | Permission is hereby granted, free of charge, to any person obtaining a copy 31 | of this software and associated documentation files (the "Software"), to deal 32 | in the Software without restriction, including without limitation the rights 33 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 34 | copies of the Software, and to permit persons to whom the Software is 35 | furnished to do so, subject to the following conditions: 36 | 37 | The above copyright notice and this permission notice shall be included in 38 | all copies or substantial portions of the Software. 39 | 40 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 41 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 42 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 43 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 44 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 45 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 46 | THE SOFTWARE. -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "各种书签", 3 | "name": "各种书签", 4 | "icons": [ 5 | { 6 | "src": "https://cdn.jsdelivr.net/gh/gdtool/testing/assets/images/pwa/android-chrome-192x192.png", 7 | "type": "image/png", 8 | "sizes": "192x192" 9 | }, 10 | { 11 | "src": "https://cdn.jsdelivr.net/gh/gdtool/testing/assets/images/pwa/android-chrome-512x512.png", 12 | "type": "image/png", 13 | "sizes": "512x512" 14 | } 15 | ], 16 | "share_target": { 17 | "action": "/mark/add/", 18 | "params": { 19 | "url": "url", 20 | "title": "title", 21 | "text": "notes" 22 | } 23 | }, 24 | "start_url": "/?source=pwa", 25 | "background_color": "#13293d", 26 | "display": "standalone", 27 | "orientation": "portrait", 28 | "scope": "/", 29 | "theme_color": "#13293d" 30 | } 31 | -------------------------------------------------------------------------------- /service-worker.js: -------------------------------------------------------------------------------- 1 | var CACHE_NAME = 'bookmark.gezhong.vip'; 2 | var urlsToCache = [ 3 | '/assets/css/unmark.css', 4 | 'https://cdn.jsdelivr.net/gh/gdtool/testing/assets/libraries/jquery/jquery-2.1.0.min.js', 5 | '/assets/js/production/unmark.loggedin.js', 6 | 'https://cdn.jsdelivr.net/gh/gdtool/testing/assets/js/plugins/modernizr-2.7.1.min.js', 7 | '/assets/js/production/unmark.plugins.js' 8 | ]; 9 | 10 | self.addEventListener('install', function(event) { 11 | self.skipWaiting(); 12 | console.log('Service Worker: Installed'); 13 | // Perform install steps 14 | event.waitUntil( 15 | caches.open(CACHE_NAME) 16 | .then(function(cache) { 17 | console.log('Service Worker: Opened cache'); 18 | return cache.addAll(urlsToCache); 19 | }) 20 | ); 21 | }); 22 | 23 | // Call Activate Event 24 | self.addEventListener('activate', e => { 25 | console.log('Service Worker: Activated'); 26 | // Remove unwanted caches 27 | e.waitUntil( 28 | caches.keys().then(cacheNames => { 29 | return Promise.all( 30 | cacheNames.map(cache => { 31 | if (cache !== CACHE_NAME) { 32 | console.log('Service Worker: Clearing Old Cache ' + cache); 33 | return caches.delete(cache); 34 | } 35 | }) 36 | ); 37 | }) 38 | ); 39 | }); 40 | 41 | // Call Fetch Event 42 | self.addEventListener('fetch', e => { 43 | console.log('Service Worker: Fetching ' + e.request); 44 | e.respondWith(fetch(e.request).catch(() => caches.match(e.request))); 45 | }); -------------------------------------------------------------------------------- /system/core/Model.php: -------------------------------------------------------------------------------- 1 | <?php 2 | /** 3 | * CodeIgniter 4 | * 5 | * An open source application development framework for PHP 6 | * 7 | * This content is released under the MIT License (MIT) 8 | * 9 | * Copyright (c) 2014 - 2019, British Columbia Institute of Technology 10 | * 11 | * Permission is hereby granted, free of charge, to any person obtaining a copy 12 | * of this software and associated documentation files (the "Software"), to deal 13 | * in the Software without restriction, including without limitation the rights 14 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | * copies of the Software, and to permit persons to whom the Software is 16 | * furnished to do so, subject to the following conditions: 17 | * 18 | * The above copyright notice and this permission notice shall be included in 19 | * all copies or substantial portions of the Software. 20 | * 21 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | * THE SOFTWARE. 28 | * 29 | * @package CodeIgniter 30 | * @author EllisLab Dev Team 31 | * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) 32 | * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) 33 | * @license https://opensource.org/licenses/MIT MIT License 34 | * @link https://codeigniter.com 35 | * @since Version 1.0.0 36 | * @filesource 37 | */ 38 | defined('BASEPATH') OR exit('No direct script access allowed'); 39 | 40 | /** 41 | * Model Class 42 | * 43 | * @package CodeIgniter 44 | * @subpackage Libraries 45 | * @category Libraries 46 | * @author EllisLab Dev Team 47 | * @link https://codeigniter.com/user_guide/libraries/config.html 48 | */ 49 | class CI_Model { 50 | 51 | /** 52 | * Class constructor 53 | * 54 | * @link https://github.com/bcit-ci/CodeIgniter/issues/5332 55 | * @return void 56 | */ 57 | public function __construct() {} 58 | 59 | /** 60 | * __get magic 61 | * 62 | * Allows models to access CI's loaded classes using the same 63 | * syntax as controllers. 64 | * 65 | * @param string $key 66 | */ 67 | public function __get($key) 68 | { 69 | // Debugging note: 70 | // If you're here because you're getting an error message 71 | // saying 'Undefined Property: system/core/Model.php', it's 72 | // most likely a typo in your model code. 73 | return get_instance()->$key; 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /system/core/compat/index.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | <title>403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

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

    Directory access is forbidden.

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

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/ibase/ibase_utility.php: -------------------------------------------------------------------------------- 1 | db->hostname, $this->db->username, $this->db->password)) 58 | { 59 | $res = ibase_backup($service, $this->db->database, $filename.'.fbk'); 60 | 61 | // Close the service connection 62 | ibase_service_detach($service); 63 | return $res; 64 | } 65 | 66 | return FALSE; 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /system/database/drivers/ibase/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

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

    Directory access is forbidden.

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

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/mssql/mssql_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /system/database/drivers/mysql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

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

    Directory access is forbidden.

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

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/oci8/oci8_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /system/database/drivers/odbc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/odbc/odbc_forge.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/pdo_forge.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/subdrivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/postgre/postgre_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite/sqlite_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite3/sqlite3_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /system/database/drivers/sqlsrv/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/sqlsrv/sqlsrv_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /system/database/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

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

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/fonts/texb.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdtool/bookmark/b9edf0fc9bd79d4a632d452ebfa25e5fabce2c6c/system/fonts/texb.ttf -------------------------------------------------------------------------------- /system/helpers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/helpers/language_helper.php: -------------------------------------------------------------------------------- 1 | lang->line($line); 67 | 68 | if ($for !== '') 69 | { 70 | $line = ''; 71 | } 72 | 73 | return $line; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /system/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

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

    Directory access is forbidden.

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

    Directory access is forbidden.

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

    Directory access is forbidden.

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

    Directory access is forbidden.

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

    Directory access is forbidden.

    9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/libraries/Session/SessionHandlerInterface.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

    Directory access is forbidden.

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

    Directory access is forbidden.

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

    Directory access is forbidden.

    9 | 10 | 11 | 12 | --------------------------------------------------------------------------------