├── App ├── base.php ├── mysql.class.php ├── smart │ ├── Autoloader.php │ ├── Smarty.class.php │ ├── SmartyBC.class.php │ ├── bootstrap.php │ ├── debug.tpl │ ├── plugins │ │ ├── block.textformat.php │ │ ├── function.counter.php │ │ ├── function.cycle.php │ │ ├── function.fetch.php │ │ ├── function.html_checkboxes.php │ │ ├── function.html_image.php │ │ ├── function.html_options.php │ │ ├── function.html_radios.php │ │ ├── function.html_select_date.php │ │ ├── function.html_select_time.php │ │ ├── function.html_table.php │ │ ├── function.mailto.php │ │ ├── function.math.php │ │ ├── modifier.capitalize.php │ │ ├── modifier.date_format.php │ │ ├── modifier.debug_print_var.php │ │ ├── modifier.escape.php │ │ ├── modifier.mb_wordwrap.php │ │ ├── modifier.regex_replace.php │ │ ├── modifier.replace.php │ │ ├── modifier.spacify.php │ │ ├── modifier.truncate.php │ │ ├── modifiercompiler.cat.php │ │ ├── modifiercompiler.count_characters.php │ │ ├── modifiercompiler.count_paragraphs.php │ │ ├── modifiercompiler.count_sentences.php │ │ ├── modifiercompiler.count_words.php │ │ ├── modifiercompiler.default.php │ │ ├── modifiercompiler.escape.php │ │ ├── modifiercompiler.from_charset.php │ │ ├── modifiercompiler.indent.php │ │ ├── modifiercompiler.lower.php │ │ ├── modifiercompiler.noprint.php │ │ ├── modifiercompiler.string_format.php │ │ ├── modifiercompiler.strip.php │ │ ├── modifiercompiler.strip_tags.php │ │ ├── modifiercompiler.to_charset.php │ │ ├── modifiercompiler.unescape.php │ │ ├── modifiercompiler.upper.php │ │ ├── modifiercompiler.wordwrap.php │ │ ├── outputfilter.trimwhitespace.php │ │ ├── shared.escape_special_chars.php │ │ ├── shared.literal_compiler_param.php │ │ ├── shared.make_timestamp.php │ │ ├── shared.mb_str_replace.php │ │ ├── shared.mb_unicode.php │ │ └── variablefilter.htmlspecialchars.php │ └── sysplugins │ │ ├── smarty_cacheresource.php │ │ ├── smarty_cacheresource_custom.php │ │ ├── smarty_cacheresource_keyvaluestore.php │ │ ├── smarty_data.php │ │ ├── smarty_internal_block.php │ │ ├── smarty_internal_cacheresource_file.php │ │ ├── smarty_internal_compile_append.php │ │ ├── smarty_internal_compile_assign.php │ │ ├── smarty_internal_compile_block.php │ │ ├── smarty_internal_compile_block_child.php │ │ ├── smarty_internal_compile_block_parent.php │ │ ├── smarty_internal_compile_break.php │ │ ├── smarty_internal_compile_call.php │ │ ├── smarty_internal_compile_capture.php │ │ ├── smarty_internal_compile_child.php │ │ ├── smarty_internal_compile_config_load.php │ │ ├── smarty_internal_compile_continue.php │ │ ├── smarty_internal_compile_debug.php │ │ ├── smarty_internal_compile_eval.php │ │ ├── smarty_internal_compile_extends.php │ │ ├── smarty_internal_compile_for.php │ │ ├── smarty_internal_compile_foreach.php │ │ ├── smarty_internal_compile_function.php │ │ ├── smarty_internal_compile_if.php │ │ ├── smarty_internal_compile_include.php │ │ ├── smarty_internal_compile_include_php.php │ │ ├── smarty_internal_compile_insert.php │ │ ├── smarty_internal_compile_ldelim.php │ │ ├── smarty_internal_compile_make_nocache.php │ │ ├── smarty_internal_compile_nocache.php │ │ ├── smarty_internal_compile_parent.php │ │ ├── smarty_internal_compile_private_block_plugin.php │ │ ├── smarty_internal_compile_private_foreachsection.php │ │ ├── smarty_internal_compile_private_function_plugin.php │ │ ├── smarty_internal_compile_private_modifier.php │ │ ├── smarty_internal_compile_private_object_block_function.php │ │ ├── smarty_internal_compile_private_object_function.php │ │ ├── smarty_internal_compile_private_php.php │ │ ├── smarty_internal_compile_private_print_expression.php │ │ ├── smarty_internal_compile_private_registered_block.php │ │ ├── smarty_internal_compile_private_registered_function.php │ │ ├── smarty_internal_compile_private_special_variable.php │ │ ├── smarty_internal_compile_rdelim.php │ │ ├── smarty_internal_compile_section.php │ │ ├── smarty_internal_compile_setfilter.php │ │ ├── smarty_internal_compile_shared_inheritance.php │ │ ├── smarty_internal_compile_while.php │ │ ├── smarty_internal_compilebase.php │ │ ├── smarty_internal_config_file_compiler.php │ │ ├── smarty_internal_configfilelexer.php │ │ ├── smarty_internal_configfileparser.php │ │ ├── smarty_internal_data.php │ │ ├── smarty_internal_debug.php │ │ ├── smarty_internal_errorhandler.php │ │ ├── smarty_internal_extension_handler.php │ │ ├── smarty_internal_method_addautoloadfilters.php │ │ ├── smarty_internal_method_adddefaultmodifiers.php │ │ ├── smarty_internal_method_append.php │ │ ├── smarty_internal_method_appendbyref.php │ │ ├── smarty_internal_method_assignbyref.php │ │ ├── smarty_internal_method_assignglobal.php │ │ ├── smarty_internal_method_clearallassign.php │ │ ├── smarty_internal_method_clearallcache.php │ │ ├── smarty_internal_method_clearassign.php │ │ ├── smarty_internal_method_clearcache.php │ │ ├── smarty_internal_method_clearcompiledtemplate.php │ │ ├── smarty_internal_method_clearconfig.php │ │ ├── smarty_internal_method_compileallconfig.php │ │ ├── smarty_internal_method_compilealltemplates.php │ │ ├── smarty_internal_method_configload.php │ │ ├── smarty_internal_method_createdata.php │ │ ├── smarty_internal_method_getautoloadfilters.php │ │ ├── smarty_internal_method_getconfigvariable.php │ │ ├── smarty_internal_method_getconfigvars.php │ │ ├── smarty_internal_method_getdebugtemplate.php │ │ ├── smarty_internal_method_getdefaultmodifiers.php │ │ ├── smarty_internal_method_getglobal.php │ │ ├── smarty_internal_method_getregisteredobject.php │ │ ├── smarty_internal_method_getstreamvariable.php │ │ ├── smarty_internal_method_gettags.php │ │ ├── smarty_internal_method_gettemplatevars.php │ │ ├── smarty_internal_method_literals.php │ │ ├── smarty_internal_method_loadfilter.php │ │ ├── smarty_internal_method_loadplugin.php │ │ ├── smarty_internal_method_mustcompile.php │ │ ├── smarty_internal_method_registercacheresource.php │ │ ├── smarty_internal_method_registerclass.php │ │ ├── smarty_internal_method_registerdefaultconfighandler.php │ │ ├── smarty_internal_method_registerdefaultpluginhandler.php │ │ ├── smarty_internal_method_registerdefaulttemplatehandler.php │ │ ├── smarty_internal_method_registerfilter.php │ │ ├── smarty_internal_method_registerobject.php │ │ ├── smarty_internal_method_registerplugin.php │ │ ├── smarty_internal_method_registerresource.php │ │ ├── smarty_internal_method_setautoloadfilters.php │ │ ├── smarty_internal_method_setdebugtemplate.php │ │ ├── smarty_internal_method_setdefaultmodifiers.php │ │ ├── smarty_internal_method_unloadfilter.php │ │ ├── smarty_internal_method_unregistercacheresource.php │ │ ├── smarty_internal_method_unregisterfilter.php │ │ ├── smarty_internal_method_unregisterobject.php │ │ ├── smarty_internal_method_unregisterplugin.php │ │ ├── smarty_internal_method_unregisterresource.php │ │ ├── smarty_internal_nocache_insert.php │ │ ├── smarty_internal_parsetree.php │ │ ├── smarty_internal_parsetree_code.php │ │ ├── smarty_internal_parsetree_dq.php │ │ ├── smarty_internal_parsetree_dqcontent.php │ │ ├── smarty_internal_parsetree_tag.php │ │ ├── smarty_internal_parsetree_template.php │ │ ├── smarty_internal_parsetree_text.php │ │ ├── smarty_internal_resource_eval.php │ │ ├── smarty_internal_resource_extends.php │ │ ├── smarty_internal_resource_file.php │ │ ├── smarty_internal_resource_php.php │ │ ├── smarty_internal_resource_registered.php │ │ ├── smarty_internal_resource_stream.php │ │ ├── smarty_internal_resource_string.php │ │ ├── smarty_internal_runtime_cachemodify.php │ │ ├── smarty_internal_runtime_cacheresourcefile.php │ │ ├── smarty_internal_runtime_capture.php │ │ ├── smarty_internal_runtime_codeframe.php │ │ ├── smarty_internal_runtime_filterhandler.php │ │ ├── smarty_internal_runtime_foreach.php │ │ ├── smarty_internal_runtime_getincludepath.php │ │ ├── smarty_internal_runtime_inheritance.php │ │ ├── smarty_internal_runtime_make_nocache.php │ │ ├── smarty_internal_runtime_tplfunction.php │ │ ├── smarty_internal_runtime_updatecache.php │ │ ├── smarty_internal_runtime_updatescope.php │ │ ├── smarty_internal_runtime_writefile.php │ │ ├── smarty_internal_smartytemplatecompiler.php │ │ ├── smarty_internal_template.php │ │ ├── smarty_internal_templatebase.php │ │ ├── smarty_internal_templatecompilerbase.php │ │ ├── smarty_internal_templatelexer.php │ │ ├── smarty_internal_templateparser.php │ │ ├── smarty_internal_testinstall.php │ │ ├── smarty_internal_undefined.php │ │ ├── smarty_resource.php │ │ ├── smarty_resource_custom.php │ │ ├── smarty_resource_recompiled.php │ │ ├── smarty_resource_uncompiled.php │ │ ├── smarty_security.php │ │ ├── smarty_template_cached.php │ │ ├── smarty_template_compiled.php │ │ ├── smarty_template_config.php │ │ ├── smarty_template_resource_base.php │ │ ├── smarty_template_source.php │ │ ├── smarty_undefined_variable.php │ │ ├── smarty_variable.php │ │ ├── smartycompilerexception.php │ │ └── smartyexception.php └── upload.class.php ├── Controller ├── Controller.php └── Home │ ├── Index.php │ ├── Upload.php │ ├── Xss.php │ └── Xxe.php ├── README.md ├── img └── 1.png ├── index.php ├── localhost.sql ├── public ├── SQL2.html ├── SQL3.html ├── UI │ ├── .versions │ ├── LICENSE │ ├── README.md │ ├── components │ │ ├── accordion.css │ │ ├── accordion.js │ │ ├── accordion.min.css │ │ ├── accordion.min.js │ │ ├── ad.css │ │ ├── ad.min.css │ │ ├── api.js │ │ ├── api.min.js │ │ ├── breadcrumb.css │ │ ├── breadcrumb.min.css │ │ ├── button.css │ │ ├── button.min.css │ │ ├── card.css │ │ ├── card.min.css │ │ ├── checkbox.css │ │ ├── checkbox.js │ │ ├── checkbox.min.css │ │ ├── checkbox.min.js │ │ ├── colorize.js │ │ ├── colorize.min.js │ │ ├── comment.css │ │ ├── comment.min.css │ │ ├── container.css │ │ ├── container.min.css │ │ ├── dimmer.css │ │ ├── dimmer.js │ │ ├── dimmer.min.css │ │ ├── dimmer.min.js │ │ ├── divider.css │ │ ├── divider.min.css │ │ ├── dropdown.css │ │ ├── dropdown.js │ │ ├── dropdown.min.css │ │ ├── dropdown.min.js │ │ ├── embed.css │ │ ├── embed.js │ │ ├── embed.min.css │ │ ├── embed.min.js │ │ ├── feed.css │ │ ├── feed.min.css │ │ ├── flag.css │ │ ├── flag.min.css │ │ ├── form.css │ │ ├── form.js │ │ ├── form.min.css │ │ ├── form.min.js │ │ ├── grid.css │ │ ├── grid.min.css │ │ ├── header.css │ │ ├── header.min.css │ │ ├── icon.css │ │ ├── icon.min.css │ │ ├── image.css │ │ ├── image.min.css │ │ ├── input.css │ │ ├── input.min.css │ │ ├── item.css │ │ ├── item.min.css │ │ ├── label.css │ │ ├── label.min.css │ │ ├── list.css │ │ ├── list.min.css │ │ ├── loader.css │ │ ├── loader.min.css │ │ ├── menu.css │ │ ├── menu.min.css │ │ ├── message.css │ │ ├── message.min.css │ │ ├── modal.css │ │ ├── modal.js │ │ ├── modal.min.css │ │ ├── modal.min.js │ │ ├── nag.css │ │ ├── nag.js │ │ ├── nag.min.css │ │ ├── nag.min.js │ │ ├── placeholder.css │ │ ├── placeholder.min.css │ │ ├── popup.css │ │ ├── popup.js │ │ ├── popup.min.css │ │ ├── popup.min.js │ │ ├── progress.css │ │ ├── progress.js │ │ ├── progress.min.css │ │ ├── progress.min.js │ │ ├── rail.css │ │ ├── rail.min.css │ │ ├── rating.css │ │ ├── rating.js │ │ ├── rating.min.css │ │ ├── rating.min.js │ │ ├── reset.css │ │ ├── reset.min.css │ │ ├── reveal.css │ │ ├── reveal.min.css │ │ ├── search.css │ │ ├── search.js │ │ ├── search.min.css │ │ ├── search.min.js │ │ ├── segment.css │ │ ├── segment.min.css │ │ ├── shape.css │ │ ├── shape.js │ │ ├── shape.min.css │ │ ├── shape.min.js │ │ ├── sidebar.css │ │ ├── sidebar.js │ │ ├── sidebar.min.css │ │ ├── sidebar.min.js │ │ ├── site.css │ │ ├── site.js │ │ ├── site.min.css │ │ ├── site.min.js │ │ ├── state.js │ │ ├── state.min.js │ │ ├── statistic.css │ │ ├── statistic.min.css │ │ ├── step.css │ │ ├── step.min.css │ │ ├── sticky.css │ │ ├── sticky.js │ │ ├── sticky.min.css │ │ ├── sticky.min.js │ │ ├── tab.css │ │ ├── tab.js │ │ ├── tab.min.css │ │ ├── tab.min.js │ │ ├── table.css │ │ ├── table.min.css │ │ ├── transition.css │ │ ├── transition.js │ │ ├── transition.min.css │ │ ├── transition.min.js │ │ ├── video.css │ │ ├── video.js │ │ ├── video.min.css │ │ ├── video.min.js │ │ ├── visibility.js │ │ ├── visibility.min.js │ │ ├── visit.js │ │ └── visit.min.js │ ├── jq.js │ ├── package.js │ ├── package.json │ ├── semantic.css │ ├── semantic.js │ ├── semantic.min.css │ ├── semantic.min.js │ └── themes │ │ └── default │ │ └── assets │ │ ├── fonts │ │ ├── brand-icons.eot │ │ ├── brand-icons.svg │ │ ├── brand-icons.ttf │ │ ├── brand-icons.woff │ │ ├── brand-icons.woff2 │ │ ├── icons.eot │ │ ├── icons.otf │ │ ├── icons.svg │ │ ├── icons.ttf │ │ ├── icons.woff │ │ ├── icons.woff2 │ │ ├── outline-icons.eot │ │ ├── outline-icons.svg │ │ ├── outline-icons.ttf │ │ ├── outline-icons.woff │ │ └── outline-icons.woff2 │ │ └── images │ │ └── flags.png ├── css │ ├── index.css │ ├── master.css │ └── prism.css ├── images │ └── bg.jpg ├── img │ ├── 1.jpeg │ ├── 10.jpeg │ ├── 11.jpeg │ ├── 4.jpeg │ ├── 5.jpeg │ ├── 6.jpeg │ ├── 9.jpeg │ ├── bg.png │ ├── box.png │ ├── btn.png │ ├── card.jpg │ ├── card.png │ ├── close.png │ ├── favicon.png │ ├── loading.gif │ └── logo.png ├── index.html ├── js │ ├── index.js │ ├── isShow.js │ ├── jquery.min.js │ ├── prism-line-numbers.min.js │ ├── prism-php.min.js │ ├── prism.js │ ├── scrollspy.js │ └── scrollspy.min.js ├── star │ ├── app.js │ ├── app.min.css │ ├── krhrpeyDEQknQgyhxrvn.js │ └── sNuMVECHBxUzZGrbnpKK.js ├── upload.html ├── xss.html └── xxe.html └── templates_c ├── 17bd3ac051f1cf0c56adb2e2497e7f55ef467d32_0.file.xss.html.php ├── 427380d35833be413aff6cadc0854ed6709b9e5d_0.file.SQL2.html.php ├── 5c7b6dc5293fa19e031accf5ede8112c4c36cbf1_0.file.SQL3.html.php ├── 6f40b916debcf1ccfdde83247498865cca50ea21_0.file.xss.html.php ├── 75e3380966fd33484befaac44c69cca08b2d2c77_0.file.xxe.html.php ├── ab29a9f154d0a475cadf0e1e816a315eed452e32_0.file.upload.html.php ├── b33b6dc3ab482922ff372fd79ea0fd844b83fe23_0.file.upload.html.php ├── b805288afee54b1b69296ab56fa9c86c545a87dc_0.file.index.html.php ├── bcb33171305fb63d4693ae4fc23dceba29933659_0.file.SQL3.html.php ├── c3e9c6af00d24575584f65a407eaf27a131acd5d_0.file.SQL2.html.php ├── cafd37f355d18c29d1a4d3727b6093869c069f7d_0.file.xxe.html.php └── d009e73bca1a954b980db014c3cce6531d498c98_0.file.index.html.php /App/base.php: -------------------------------------------------------------------------------- 1 | autoload(); 11 | } 12 | 13 | public static function run(){ 14 | if (!(self::$instance instanceof self)){ 15 | self::$instance = new static(); 16 | } 17 | return self::$instance; 18 | } 19 | 20 | private function autoload(){ 21 | $PATH_INFO = $_SERVER['PATH_INFO']; 22 | $PATH_INFO = trim($PATH_INFO,"/"); //匹配index.php / 后的参数 23 | if (empty($PATH_INFO)){ 24 | $Cont = "Home"; 25 | $file = "Index"; 26 | $method = "SQL_one"; 27 | } 28 | @$arr = explode("/",$PATH_INFO); 29 | if (empty($arr[0])){ 30 | $Cont = "Home"; 31 | }else{ 32 | $Cont = trim($arr[0],"/"); 33 | } 34 | if (empty($arr[1])){ 35 | $file = "Index"; 36 | }else{ 37 | $file = trim($arr[1],"/"); 38 | } 39 | if (empty($arr[2])){ 40 | $method = "SQL_one"; 41 | }else{ 42 | $method = trim($arr[2],"/"); 43 | } 44 | $this->includePHP(); 45 | include_once __D__."/{$this->Contr}/{$Cont}/{$file}.php"; 46 | $obj = new $file(); 47 | $obj->$method(); 48 | } 49 | 50 | private function includePHP(){ 51 | include_once __D__."/App/smart/Smarty.class.php"; 52 | include_once __D__."/App/mysql.class.php"; 53 | include_once __D__."/App/upload.class.php"; 54 | include_once __D__."/Controller/Controller.php"; 55 | } 56 | } 57 | 58 | 59 | 60 | ?> -------------------------------------------------------------------------------- /App/mysql.class.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | /** 11 | * Load and register Smarty Autoloader 12 | */ 13 | if (!class_exists('Smarty_Autoloader')) { 14 | include dirname(__FILE__) . '/Autoloader.php'; 15 | } 16 | Smarty_Autoloader::register(true); 17 | -------------------------------------------------------------------------------- /App/smart/plugins/function.counter.php: -------------------------------------------------------------------------------- 1 | 15 | * @link http://www.smarty.net/manual/en/language.function.counter.php {counter} 16 | * (Smarty online manual) 17 | * 18 | * @param array $params parameters 19 | * @param Smarty_Internal_Template $template template object 20 | * 21 | * @return string|null 22 | */ 23 | function smarty_function_counter($params, $template) 24 | { 25 | static $counters = array(); 26 | $name = (isset($params[ 'name' ])) ? $params[ 'name' ] : 'default'; 27 | if (!isset($counters[ $name ])) { 28 | $counters[ $name ] = array('start' => 1, 'skip' => 1, 'direction' => 'up', 'count' => 1); 29 | } 30 | $counter =& $counters[ $name ]; 31 | if (isset($params[ 'start' ])) { 32 | $counter[ 'start' ] = $counter[ 'count' ] = (int)$params[ 'start' ]; 33 | } 34 | if (!empty($params[ 'assign' ])) { 35 | $counter[ 'assign' ] = $params[ 'assign' ]; 36 | } 37 | if (isset($counter[ 'assign' ])) { 38 | $template->assign($counter[ 'assign' ], $counter[ 'count' ]); 39 | } 40 | if (isset($params[ 'print' ])) { 41 | $print = (bool)$params[ 'print' ]; 42 | } else { 43 | $print = empty($counter[ 'assign' ]); 44 | } 45 | if ($print) { 46 | $retval = $counter[ 'count' ]; 47 | } else { 48 | $retval = null; 49 | } 50 | if (isset($params[ 'skip' ])) { 51 | $counter[ 'skip' ] = $params[ 'skip' ]; 52 | } 53 | if (isset($params[ 'direction' ])) { 54 | $counter[ 'direction' ] = $params[ 'direction' ]; 55 | } 56 | if ($counter[ 'direction' ] === 'down') { 57 | $counter[ 'count' ] -= $counter[ 'skip' ]; 58 | } else { 59 | $counter[ 'count' ] += $counter[ 'skip' ]; 60 | } 61 | return $retval; 62 | } 63 | -------------------------------------------------------------------------------- /App/smart/plugins/modifier.mb_wordwrap.php: -------------------------------------------------------------------------------- 1 | $width) { 36 | if ($cut) { 37 | $_tokens = preg_split( 38 | '!(.{' . $width . '})!S' . Smarty::$_UTF8_MODIFIER, 39 | $_token, 40 | -1, 41 | PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE 42 | ); 43 | } 44 | } 45 | foreach ($_tokens as $token) { 46 | $_space = !!preg_match('!^\s$!S' . Smarty::$_UTF8_MODIFIER, $token); 47 | $token_length = mb_strlen($token, Smarty::$_CHARSET); 48 | $length += $token_length; 49 | if ($length > $width) { 50 | // remove space before inserted break 51 | if ($_previous) { 52 | $t = mb_substr($t, 0, -1, Smarty::$_CHARSET); 53 | } 54 | if (!$_space) { 55 | // add the break before the token 56 | if (!empty($t)) { 57 | $t .= $break; 58 | } 59 | $length = $token_length; 60 | } 61 | } elseif ($token === "\n") { 62 | // hard break must reset counters 63 | $length = 0; 64 | } 65 | $_previous = $_space; 66 | // add the token 67 | $t .= $token; 68 | } 69 | } 70 | return $t; 71 | } 72 | -------------------------------------------------------------------------------- /App/smart/plugins/modifier.regex_replace.php: -------------------------------------------------------------------------------- 1 | 17 | * 18 | * @param string $string input string 19 | * @param string|array $search regular expression(s) to search for 20 | * @param string|array $replace string(s) that should be replaced 21 | * @param int $limit the maximum number of replacements 22 | * 23 | * @return string 24 | */ 25 | function smarty_modifier_regex_replace($string, $search, $replace, $limit = -1) 26 | { 27 | if (is_array($search)) { 28 | foreach ($search as $idx => $s) { 29 | $search[ $idx ] = _smarty_regex_replace_check($s); 30 | } 31 | } else { 32 | $search = _smarty_regex_replace_check($search); 33 | } 34 | return preg_replace($search, $replace, $string, $limit); 35 | } 36 | 37 | /** 38 | * @param string $search string(s) that should be replaced 39 | * 40 | * @return string 41 | * @ignore 42 | */ 43 | function _smarty_regex_replace_check($search) 44 | { 45 | // null-byte injection detection 46 | // anything behind the first null-byte is ignored 47 | if (($pos = strpos($search, "\0")) !== false) { 48 | $search = substr($search, 0, $pos); 49 | } 50 | // remove eval-modifier from $search 51 | if (preg_match('!([a-zA-Z\s]+)$!s', $search, $match) && (strpos($match[ 1 ], 'e') !== false)) { 52 | $search = substr($search, 0, -strlen($match[ 1 ])) . preg_replace('![e\s]+!', '', $match[ 1 ]); 53 | } 54 | return $search; 55 | } 56 | -------------------------------------------------------------------------------- /App/smart/plugins/modifier.replace.php: -------------------------------------------------------------------------------- 1 | 16 | * @author Uwe Tews 17 | * 18 | * @param string $string input string 19 | * @param string $search text to search for 20 | * @param string $replace replacement text 21 | * 22 | * @return string 23 | */ 24 | function smarty_modifier_replace($string, $search, $replace) 25 | { 26 | static $is_loaded = false; 27 | if (Smarty::$_MBSTRING) { 28 | if (!$is_loaded) { 29 | if (!is_callable('smarty_mb_str_replace')) { 30 | include_once SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php'; 31 | } 32 | $is_loaded = true; 33 | } 34 | return smarty_mb_str_replace($search, $replace, $string); 35 | } 36 | return str_replace($search, $replace, $string); 37 | } 38 | -------------------------------------------------------------------------------- /App/smart/plugins/modifier.spacify.php: -------------------------------------------------------------------------------- 1 | 16 | * 17 | * @param string $string input string 18 | * @param string $spacify_char string to insert between characters. 19 | * 20 | * @return string 21 | */ 22 | function smarty_modifier_spacify($string, $spacify_char = ' ') 23 | { 24 | // well… what about charsets besides latin and UTF-8? 25 | return implode($spacify_char, preg_split('//' . Smarty::$_UTF8_MODIFIER, $string, -1, PREG_SPLIT_NO_EMPTY)); 26 | } 27 | -------------------------------------------------------------------------------- /App/smart/plugins/modifier.truncate.php: -------------------------------------------------------------------------------- 1 | 18 | * 19 | * @param string $string input string 20 | * @param integer $length length of truncated text 21 | * @param string $etc end string 22 | * @param boolean $break_words truncate at word boundary 23 | * @param boolean $middle truncate in the middle of text 24 | * 25 | * @return string truncated string 26 | */ 27 | function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false) 28 | { 29 | if ($length === 0) { 30 | return ''; 31 | } 32 | if (Smarty::$_MBSTRING) { 33 | if (mb_strlen($string, Smarty::$_CHARSET) > $length) { 34 | $length -= min($length, mb_strlen($etc, Smarty::$_CHARSET)); 35 | if (!$break_words && !$middle) { 36 | $string = preg_replace( 37 | '/\s+?(\S+)?$/' . Smarty::$_UTF8_MODIFIER, 38 | '', 39 | mb_substr($string, 0, $length + 1, Smarty::$_CHARSET) 40 | ); 41 | } 42 | if (!$middle) { 43 | return mb_substr($string, 0, $length, Smarty::$_CHARSET) . $etc; 44 | } 45 | return mb_substr($string, 0, $length / 2, Smarty::$_CHARSET) . $etc . 46 | mb_substr($string, -$length / 2, $length, Smarty::$_CHARSET); 47 | } 48 | return $string; 49 | } 50 | // no MBString fallback 51 | if (isset($string[ $length ])) { 52 | $length -= min($length, strlen($etc)); 53 | if (!$break_words && !$middle) { 54 | $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length + 1)); 55 | } 56 | if (!$middle) { 57 | return substr($string, 0, $length) . $etc; 58 | } 59 | return substr($string, 0, $length / 2) . $etc . substr($string, -$length / 2); 60 | } 61 | return $string; 62 | } 63 | -------------------------------------------------------------------------------- /App/smart/plugins/modifiercompiler.cat.php: -------------------------------------------------------------------------------- 1 | 16 | * @author Uwe Tews 17 | * 18 | * @param array $params parameters 19 | * 20 | * @return string with compiled code 21 | */ 22 | function smarty_modifiercompiler_lower($params) 23 | { 24 | if (Smarty::$_MBSTRING) { 25 | return 'mb_strtolower(' . $params[ 0 ] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')'; 26 | } 27 | // no MBString fallback 28 | return 'strtolower(' . $params[ 0 ] . ')'; 29 | } 30 | -------------------------------------------------------------------------------- /App/smart/plugins/modifiercompiler.noprint.php: -------------------------------------------------------------------------------- 1 | ]*?>!', ' ', {$params[0]})"; 25 | } else { 26 | return 'strip_tags(' . $params[ 0 ] . ')'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /App/smart/plugins/modifiercompiler.to_charset.php: -------------------------------------------------------------------------------- 1 | getPlugin('mb_wordwrap', 'modifier'); 37 | } 38 | return $function . '(' . $params[ 0 ] . ',' . $params[ 1 ] . ',' . $params[ 2 ] . ',' . $params[ 3 ] . ')'; 39 | } 40 | -------------------------------------------------------------------------------- /App/smart/plugins/shared.escape_special_chars.php: -------------------------------------------------------------------------------- 1 | 15 | * 16 | * @param string $string text that should by escaped 17 | * 18 | * @return string 19 | */ 20 | function smarty_function_escape_special_chars($string) 21 | { 22 | if (!is_array($string)) { 23 | if (version_compare(PHP_VERSION, '5.2.3', '>=')) { 24 | $string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false); 25 | } else { 26 | $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string); 27 | $string = htmlspecialchars($string); 28 | $string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string); 29 | } 30 | } 31 | return $string; 32 | } 33 | -------------------------------------------------------------------------------- /App/smart/plugins/shared.literal_compiler_param.php: -------------------------------------------------------------------------------- 1 | 13 | * 14 | * @param DateTime|int|string $string date object, timestamp or string that can be converted using strtotime() 15 | * 16 | * @return int 17 | */ 18 | function smarty_make_timestamp($string) 19 | { 20 | if (empty($string)) { 21 | // use "now": 22 | return time(); 23 | } elseif ($string instanceof DateTime 24 | || (interface_exists('DateTimeInterface', false) && $string instanceof DateTimeInterface) 25 | ) { 26 | return (int)$string->format('U'); // PHP 5.2 BC 27 | } elseif (strlen($string) === 14 && ctype_digit($string)) { 28 | // it is mysql timestamp format of YYYYMMDDHHMMSS? 29 | return mktime( 30 | substr($string, 8, 2), 31 | substr($string, 10, 2), 32 | substr($string, 12, 2), 33 | substr($string, 4, 2), 34 | substr($string, 6, 2), 35 | substr($string, 0, 4) 36 | ); 37 | } elseif (is_numeric($string)) { 38 | // it is a numeric string, we handle it as timestamp 39 | return (int)$string; 40 | } else { 41 | // strtotime should handle it 42 | $time = strtotime($string); 43 | if ($time === -1 || $time === false) { 44 | // strtotime() was not able to parse $string, use "now": 45 | return time(); 46 | } 47 | return $time; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /App/smart/plugins/shared.mb_str_replace.php: -------------------------------------------------------------------------------- 1 | dataObjectName = 'Data_object ' . (isset($name) ? "'{$name}'" : self::$count); 55 | $this->smarty = $smarty; 56 | if (is_object($_parent)) { 57 | // when object set up back pointer 58 | $this->parent = $_parent; 59 | } elseif (is_array($_parent)) { 60 | // set up variable values 61 | foreach ($_parent as $_key => $_val) { 62 | $this->tpl_vars[ $_key ] = new Smarty_Variable($_val); 63 | } 64 | } elseif ($_parent !== null) { 65 | throw new SmartyException('Wrong type for template variables'); 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_block.php: -------------------------------------------------------------------------------- 1 | name = $name; 79 | $this->tplIndex = $tplIndex; 80 | } 81 | 82 | /** 83 | * Compiled block code overloaded by {block} class 84 | * 85 | * @param \Smarty_Internal_Template $tpl 86 | */ 87 | public function callBlock(Smarty_Internal_Template $tpl) 88 | { 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_append.php: -------------------------------------------------------------------------------- 1 | required_attributes = array('var', 'value'); 33 | $this->shorttag_order = array('var', 'value'); 34 | $this->optional_attributes = array('scope', 'index'); 35 | $this->mapCache = array(); 36 | // check and get attributes 37 | $_attr = $this->getAttributes($compiler, $args); 38 | // map to compile assign attributes 39 | if (isset($_attr[ 'index' ])) { 40 | $_params[ 'smarty_internal_index' ] = '[' . $_attr[ 'index' ] . ']'; 41 | unset($_attr[ 'index' ]); 42 | } else { 43 | $_params[ 'smarty_internal_index' ] = '[]'; 44 | } 45 | $_new_attr = array(); 46 | foreach ($_attr as $key => $value) { 47 | $_new_attr[] = array($key => $value); 48 | } 49 | // call compile assign 50 | return parent::compile($_new_attr, $compiler, $_params); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_block_child.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | class Smarty_Internal_Compile_Block_Child extends Smarty_Internal_Compile_Child 17 | { 18 | /** 19 | * Tag name 20 | * 21 | * @var string 22 | */ 23 | public $tag = 'block_child'; 24 | } 25 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_block_parent.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | class Smarty_Internal_Compile_Block_Parent extends Smarty_Internal_Compile_Child 17 | { 18 | /** 19 | * Tag name 20 | * 21 | * @var string 22 | */ 23 | public $tag = 'block_parent'; 24 | 25 | /** 26 | * Block type 27 | * 28 | * @var string 29 | */ 30 | public $blockType = 'Parent'; 31 | } 32 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_child.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | class Smarty_Internal_Compile_Child extends Smarty_Internal_CompileBase 17 | { 18 | /** 19 | * Attribute definition: Overwrites base class. 20 | * 21 | * @var array 22 | * @see Smarty_Internal_CompileBase 23 | */ 24 | public $optional_attributes = array('assign'); 25 | 26 | /** 27 | * Tag name 28 | * 29 | * @var string 30 | */ 31 | public $tag = 'child'; 32 | 33 | /** 34 | * Block type 35 | * 36 | * @var string 37 | */ 38 | public $blockType = 'Child'; 39 | 40 | /** 41 | * Compiles code for the {child} tag 42 | * 43 | * @param array $args array with attributes from parser 44 | * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object 45 | * @param array $parameter array with compilation parameter 46 | * 47 | * @return string compiled code 48 | * @throws \SmartyCompilerException 49 | */ 50 | public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) 51 | { 52 | // check and get attributes 53 | $_attr = $this->getAttributes($compiler, $args); 54 | $tag = isset($parameter[ 0 ]) ? "'{$parameter[0]}'" : "'{{$this->tag}}'"; 55 | if (!isset($compiler->_cache[ 'blockNesting' ])) { 56 | $compiler->trigger_template_error( 57 | "{$tag} used outside {block} tags ", 58 | $compiler->parser->lex->taglineno 59 | ); 60 | } 61 | $compiler->has_code = true; 62 | $compiler->suppressNocacheProcessing = true; 63 | if ($this->blockType === 'Child') { 64 | $compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ][ 'callsChild' ] = 'true'; 65 | } 66 | $_assign = isset($_attr[ 'assign' ]) ? $_attr[ 'assign' ] : null; 67 | $output = "inheritance->call' . $this->blockType . '($_smarty_tpl, $this' . 72 | ($this->blockType === 'Child' ? '' : ", {$tag}") . ");\n"; 73 | if (isset($_assign)) { 74 | $output .= "\$_smarty_tpl->assign({$_assign}, ob_get_clean());\n"; 75 | } 76 | $output .= "?>\n"; 77 | return $output; 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_continue.php: -------------------------------------------------------------------------------- 1 | getAttributes($compiler, $args); 32 | // compile always as nocache 33 | $compiler->tag_nocache = true; 34 | // display debug template 35 | $_output = 36 | "display_debug(\$_smarty_tpl);\n"; 37 | $_output .= "unset(\$_smarty_debug);\n?>"; 38 | return $_output; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_eval.php: -------------------------------------------------------------------------------- 1 | getAttributes($compiler, $args); 55 | if (isset($_attr[ 'assign' ])) { 56 | // output will be stored in a smarty variable instead of being displayed 57 | $_assign = $_attr[ 'assign' ]; 58 | } 59 | // create template object 60 | $_output = 61 | "\$_template = new {$compiler->smarty->template_class}('eval:'.{$_attr[ 'var' ]}, \$_smarty_tpl->smarty, \$_smarty_tpl);"; 62 | //was there an assign attribute? 63 | if (isset($_assign)) { 64 | $_output .= "\$_smarty_tpl->assign($_assign,\$_template->fetch());"; 65 | } else { 66 | $_output .= 'echo $_template->fetch();'; 67 | } 68 | return ""; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_ldelim.php: -------------------------------------------------------------------------------- 1 | getAttributes($compiler, $args); 32 | if ($_attr[ 'nocache' ] === true) { 33 | $compiler->trigger_template_error('nocache option not allowed', null, true); 34 | } 35 | return $compiler->smarty->left_delimiter; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_make_nocache.php: -------------------------------------------------------------------------------- 1 | getAttributes($compiler, $args); 53 | if ($compiler->template->caching) { 54 | $output = "smarty->ext->_make_nocache->save(\$_smarty_tpl, {$_attr[ 'var' ]});\n?>\n"; 55 | $compiler->template->compiled->has_nocache_code = true; 56 | $compiler->suppressNocacheProcessing = true; 57 | return $output; 58 | } else { 59 | return true; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_nocache.php: -------------------------------------------------------------------------------- 1 | getAttributes($compiler, $args); 38 | $this->openTag($compiler, 'nocache', array($compiler->nocache)); 39 | // enter nocache mode 40 | $compiler->nocache = true; 41 | // this tag does not return compiled code 42 | $compiler->has_code = false; 43 | return true; 44 | } 45 | } 46 | 47 | /** 48 | * Smarty Internal Plugin Compile Nocacheclose Class 49 | * 50 | * @package Smarty 51 | * @subpackage Compiler 52 | */ 53 | class Smarty_Internal_Compile_Nocacheclose extends Smarty_Internal_CompileBase 54 | { 55 | /** 56 | * Compiles code for the {/nocache} tag 57 | * This tag does not generate compiled output. It only sets a compiler flag. 58 | * 59 | * @param array $args array with attributes from parser 60 | * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object 61 | * 62 | * @return bool 63 | */ 64 | public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler) 65 | { 66 | $_attr = $this->getAttributes($compiler, $args); 67 | // leave nocache mode 68 | list($compiler->nocache) = $this->closeTag($compiler, array('nocache')); 69 | // this tag does not return compiled code 70 | $compiler->has_code = false; 71 | return true; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_parent.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | class Smarty_Internal_Compile_Parent extends Smarty_Internal_Compile_Child 17 | { 18 | /** 19 | * Tag name 20 | * 21 | * @var string 22 | */ 23 | public $tag = 'parent'; 24 | 25 | /** 26 | * Block type 27 | * 28 | * @var string 29 | */ 30 | public $blockType = 'Parent'; 31 | } 32 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_private_function_plugin.php: -------------------------------------------------------------------------------- 1 | getAttributes($compiler, $args); 52 | unset($_attr[ 'nocache' ]); 53 | // convert attributes into parameter array string 54 | $_paramsArray = array(); 55 | foreach ($_attr as $_key => $_value) { 56 | if (is_int($_key)) { 57 | $_paramsArray[] = "$_key=>$_value"; 58 | } else { 59 | $_paramsArray[] = "'$_key'=>$_value"; 60 | } 61 | } 62 | $_params = 'array(' . implode(',', $_paramsArray) . ')'; 63 | // compile code 64 | $output = "{$function}({$_params},\$_smarty_tpl)"; 65 | if (!empty($parameter[ 'modifierlist' ])) { 66 | $output = $compiler->compileTag( 67 | 'private_modifier', 68 | array(), 69 | array( 70 | 'modifierlist' => $parameter[ 'modifierlist' ], 71 | 'value' => $output 72 | ) 73 | ); 74 | } 75 | $output = "\n"; 76 | return $output; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_private_object_block_function.php: -------------------------------------------------------------------------------- 1 | $_value) { 33 | if (is_int($_key)) { 34 | $_paramsArray[] = "$_key=>$_value"; 35 | } else { 36 | $_paramsArray[] = "'$_key'=>$_value"; 37 | } 38 | } 39 | $callback = array("\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]", "->{$method}"); 40 | return array($callback, $_paramsArray, "array(\$_block_plugin{$this->nesting}, '{$method}')"); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_rdelim.php: -------------------------------------------------------------------------------- 1 | smarty->right_delimiter; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_setfilter.php: -------------------------------------------------------------------------------- 1 | variable_filter_stack[] = $compiler->variable_filters; 31 | $compiler->variable_filters = $parameter[ 'modifier_list' ]; 32 | // this tag does not return compiled code 33 | $compiler->has_code = false; 34 | return true; 35 | } 36 | } 37 | 38 | /** 39 | * Smarty Internal Plugin Compile Setfilterclose Class 40 | * 41 | * @package Smarty 42 | * @subpackage Compiler 43 | */ 44 | class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_CompileBase 45 | { 46 | /** 47 | * Compiles code for the {/setfilter} tag 48 | * This tag does not generate compiled output. It resets variable filter. 49 | * 50 | * @param array $args array with attributes from parser 51 | * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object 52 | * 53 | * @return string compiled code 54 | */ 55 | public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler) 56 | { 57 | $_attr = $this->getAttributes($compiler, $args); 58 | // reset variable filter to previous state 59 | if (count($compiler->variable_filter_stack)) { 60 | $compiler->variable_filters = array_pop($compiler->variable_filter_stack); 61 | } else { 62 | $compiler->variable_filters = array(); 63 | } 64 | // this tag does not return compiled code 65 | $compiler->has_code = false; 66 | return true; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_compile_shared_inheritance.php: -------------------------------------------------------------------------------- 1 | prefixCompiledCode .= "_loadInheritance();\n\$_smarty_tpl->inheritance->init(\$_smarty_tpl, " . 28 | var_export($initChildSequence, true) . ");\n?>\n"; 29 | } 30 | 31 | /** 32 | * Register post compile callback to compile inheritance initialization code 33 | * 34 | * @param \Smarty_Internal_TemplateCompilerBase $compiler 35 | * @param bool|false $initChildSequence if true force child template 36 | */ 37 | public function registerInit(Smarty_Internal_TemplateCompilerBase $compiler, $initChildSequence = false) 38 | { 39 | if ($initChildSequence || !isset($compiler->_cache[ 'inheritanceInit' ])) { 40 | $compiler->registerPostCompileCallback( 41 | array('Smarty_Internal_Compile_Shared_Inheritance', 'postCompile'), 42 | array($initChildSequence), 43 | 'inheritanceInit', 44 | $initChildSequence 45 | ); 46 | $compiler->_cache[ 'inheritanceInit' ] = true; 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_addautoloadfilters.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 33 | if ($type !== null) { 34 | $this->_checkFilterType($type); 35 | if (!empty($smarty->autoload_filters[ $type ])) { 36 | $smarty->autoload_filters[ $type ] = array_merge($smarty->autoload_filters[ $type ], (array)$filters); 37 | } else { 38 | $smarty->autoload_filters[ $type ] = (array)$filters; 39 | } 40 | } else { 41 | foreach ((array)$filters as $type => $value) { 42 | $this->_checkFilterType($type); 43 | if (!empty($smarty->autoload_filters[ $type ])) { 44 | $smarty->autoload_filters[ $type ] = 45 | array_merge($smarty->autoload_filters[ $type ], (array)$value); 46 | } else { 47 | $smarty->autoload_filters[ $type ] = (array)$value; 48 | } 49 | } 50 | } 51 | return $obj; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_adddefaultmodifiers.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 35 | if (is_array($modifiers)) { 36 | $smarty->default_modifiers = array_merge($smarty->default_modifiers, $modifiers); 37 | } else { 38 | $smarty->default_modifiers[] = $modifiers; 39 | } 40 | return $obj; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_appendbyref.php: -------------------------------------------------------------------------------- 1 | tpl_vars[ $tpl_var ])) { 31 | $data->tpl_vars[ $tpl_var ] = new Smarty_Variable(); 32 | } 33 | if (!is_array($data->tpl_vars[ $tpl_var ]->value)) { 34 | settype($data->tpl_vars[ $tpl_var ]->value, 'array'); 35 | } 36 | if ($merge && is_array($value)) { 37 | foreach ($value as $_key => $_val) { 38 | $data->tpl_vars[ $tpl_var ]->value[ $_key ] = &$value[ $_key ]; 39 | } 40 | } else { 41 | $data->tpl_vars[ $tpl_var ]->value[] = &$value; 42 | } 43 | if ($data->_isTplObj() && $data->scope) { 44 | $data->ext->_updateScope->_updateScope($data, $tpl_var); 45 | } 46 | } 47 | return $data; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_assignbyref.php: -------------------------------------------------------------------------------- 1 | tpl_vars[ $tpl_var ] = new Smarty_Variable(null, $nocache); 29 | $data->tpl_vars[ $tpl_var ]->value = &$value; 30 | if ($data->_isTplObj() && $data->scope) { 31 | $data->ext->_updateScope->_updateScope($data, $tpl_var); 32 | } 33 | } 34 | return $data; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_assignglobal.php: -------------------------------------------------------------------------------- 1 | _isTplObj()) { 38 | $ptr->tpl_vars[ $varName ] = clone Smarty::$global_tpl_vars[ $varName ]; 39 | $ptr = $ptr->parent; 40 | } 41 | } 42 | return $data; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_clearallassign.php: -------------------------------------------------------------------------------- 1 | tpl_vars = array(); 34 | return $data; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_clearallcache.php: -------------------------------------------------------------------------------- 1 | _clearTemplateCache(); 37 | // load cache resource and call clearAll 38 | $_cache_resource = Smarty_CacheResource::load($smarty, $type); 39 | return $_cache_resource->clearAll($smarty, $exp_time); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_clearassign.php: -------------------------------------------------------------------------------- 1 | tpl_vars[ $curr_var ]); 37 | } 38 | } else { 39 | unset($data->tpl_vars[ $tpl_var ]); 40 | } 41 | return $data; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_clearcache.php: -------------------------------------------------------------------------------- 1 | _clearTemplateCache(); 46 | // load cache resource and call clear 47 | $_cache_resource = Smarty_CacheResource::load($smarty, $type); 48 | return $_cache_resource->clear($smarty, $template_name, $cache_id, $compile_id, $exp_time); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_clearconfig.php: -------------------------------------------------------------------------------- 1 | config_vars[ $name ]); 36 | } else { 37 | $data->config_vars = array(); 38 | } 39 | return $data; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_compileallconfig.php: -------------------------------------------------------------------------------- 1 | compileAll($smarty, $extension, $force_compile, $time_limit, $max_errors, true); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_createdata.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 38 | $dataObj = new Smarty_Data($parent, $smarty, $name); 39 | if ($smarty->debugging) { 40 | Smarty_Internal_Debug::register_data($dataObj); 41 | } 42 | return $dataObj; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_getautoloadfilters.php: -------------------------------------------------------------------------------- 1 | array( 'filter1', 'filter2', … ) ) or array( 'filter1', 'filter2', …) if $type 25 | * was specified 26 | * @throws \SmartyException 27 | */ 28 | public function getAutoloadFilters(Smarty_Internal_TemplateBase $obj, $type = null) 29 | { 30 | $smarty = $obj->_getSmartyObj(); 31 | if ($type !== null) { 32 | $this->_checkFilterType($type); 33 | return isset($smarty->autoload_filters[ $type ]) ? $smarty->autoload_filters[ $type ] : array(); 34 | } 35 | return $smarty->autoload_filters; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_getconfigvariable.php: -------------------------------------------------------------------------------- 1 | ext->configLoad->_getConfigVariable($data, $varName, $errorEnable); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_getconfigvars.php: -------------------------------------------------------------------------------- 1 | config_vars[ $varname ])) { 40 | return $_ptr->config_vars[ $varname ]; 41 | } 42 | } else { 43 | $var_array = array_merge($_ptr->config_vars, $var_array); 44 | } 45 | // not found, try at parent 46 | if ($search_parents) { 47 | $_ptr = $_ptr->parent; 48 | } else { 49 | $_ptr = null; 50 | } 51 | } 52 | if (isset($varname)) { 53 | return ''; 54 | } else { 55 | return $var_array; 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_getdebugtemplate.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 33 | return $smarty->debug_tpl; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_getdefaultmodifiers.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 33 | return $smarty->default_modifiers; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_getglobal.php: -------------------------------------------------------------------------------- 1 | value; 36 | } else { 37 | return ''; 38 | } 39 | } else { 40 | $_result = array(); 41 | foreach (Smarty::$global_tpl_vars as $key => $var) { 42 | $_result[ $key ] = $var->value; 43 | } 44 | return $_result; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_getregisteredobject.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 36 | if (!isset($smarty->registered_objects[ $object_name ])) { 37 | throw new SmartyException("'$object_name' is not a registered object"); 38 | } 39 | if (!is_object($smarty->registered_objects[ $object_name ][ 0 ])) { 40 | throw new SmartyException("registered '$object_name' is not an object"); 41 | } 42 | return $smarty->registered_objects[ $object_name ][ 0 ]; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_getstreamvariable.php: -------------------------------------------------------------------------------- 1 | smarty) ? $data->smarty : $data; 44 | if ($smarty->error_unassigned) { 45 | throw new SmartyException('Undefined stream variable "' . $variable . '"'); 46 | } else { 47 | return null; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_gettags.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 38 | if ($obj->_isTplObj() && !isset($template)) { 39 | $tpl = clone $obj; 40 | } elseif (isset($template) && $template->_isTplObj()) { 41 | $tpl = clone $template; 42 | } elseif (isset($template) && is_string($template)) { 43 | /* @var Smarty_Internal_Template $tpl */ 44 | $tpl = new $smarty->template_class($template, $smarty); 45 | // checks if template exists 46 | if (!$tpl->source->exists) { 47 | throw new SmartyException("Unable to load template {$tpl->source->type} '{$tpl->source->name}'"); 48 | } 49 | } 50 | if (isset($tpl)) { 51 | $tpl->smarty = clone $tpl->smarty; 52 | $tpl->smarty->_cache[ 'get_used_tags' ] = true; 53 | $tpl->_cache[ 'used_tags' ] = array(); 54 | $tpl->smarty->merge_compiled_includes = false; 55 | $tpl->smarty->disableSecurity(); 56 | $tpl->caching = Smarty::CACHING_OFF; 57 | $tpl->loadCompiler(); 58 | $tpl->compiler->compileTemplate($tpl); 59 | return $tpl->_cache[ 'used_tags' ]; 60 | } 61 | throw new SmartyException('Missing template specification'); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_loadfilter.php: -------------------------------------------------------------------------------- 1 | true, 'post' => true, 'output' => true, 'variable' => true); 27 | 28 | /** 29 | * load a filter of specified type and name 30 | * 31 | * @api Smarty::loadFilter() 32 | * 33 | * @link http://www.smarty.net/docs/en/api.load.filter.tpl 34 | * 35 | * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj 36 | * @param string $type filter type 37 | * @param string $name filter name 38 | * 39 | * @return bool 40 | * @throws SmartyException if filter could not be loaded 41 | */ 42 | public function loadFilter(Smarty_Internal_TemplateBase $obj, $type, $name) 43 | { 44 | $smarty = $obj->_getSmartyObj(); 45 | $this->_checkFilterType($type); 46 | $_plugin = "smarty_{$type}filter_{$name}"; 47 | $_filter_name = $_plugin; 48 | if (is_callable($_plugin)) { 49 | $smarty->registered_filters[ $type ][ $_filter_name ] = $_plugin; 50 | return true; 51 | } 52 | if ($smarty->loadPlugin($_plugin)) { 53 | if (class_exists($_plugin, false)) { 54 | $_plugin = array($_plugin, 'execute'); 55 | } 56 | if (is_callable($_plugin)) { 57 | $smarty->registered_filters[ $type ][ $_filter_name ] = $_plugin; 58 | return true; 59 | } 60 | } 61 | throw new SmartyException("{$type}filter '{$name}' not found or callable"); 62 | } 63 | 64 | /** 65 | * Check if filter type is valid 66 | * 67 | * @param string $type 68 | * 69 | * @throws \SmartyException 70 | */ 71 | public function _checkFilterType($type) 72 | { 73 | if (!isset($this->filterTypes[ $type ])) { 74 | throw new SmartyException("Illegal filter type '{$type}'"); 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_mustcompile.php: -------------------------------------------------------------------------------- 1 | source->exists) { 34 | if ($_template->_isSubTpl()) { 35 | $parent_resource = " in '$_template->parent->template_resource}'"; 36 | } else { 37 | $parent_resource = ''; 38 | } 39 | throw new SmartyException("Unable to load template {$_template->source->type} '{$_template->source->name}'{$parent_resource}"); 40 | } 41 | if ($_template->mustCompile === null) { 42 | $_template->mustCompile = (!$_template->source->handler->uncompiled && 43 | ($_template->smarty->force_compile || $_template->source->handler->recompiled || 44 | !$_template->compiled->exists || ($_template->compile_check && 45 | $_template->compiled->getTimeStamp() < 46 | $_template->source->getTimeStamp()))); 47 | } 48 | return $_template->mustCompile; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_registercacheresource.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 39 | $smarty->registered_cache_resources[ $name ] = $resource_handler; 40 | return $obj; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_registerclass.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 38 | // test if exists 39 | if (!class_exists($class_impl)) { 40 | throw new SmartyException("Undefined class '$class_impl' in register template class"); 41 | } 42 | // register the class 43 | $smarty->registered_classes[ $class_name ] = $class_impl; 44 | return $obj; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_registerdefaultconfighandler.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 35 | if (is_callable($callback)) { 36 | $smarty->default_config_handler_func = $callback; 37 | } else { 38 | throw new SmartyException('Default config handler not callable'); 39 | } 40 | return $obj; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 36 | if (is_callable($callback)) { 37 | $smarty->default_plugin_handler_func = $callback; 38 | } else { 39 | throw new SmartyException("Default plugin handler '$callback' not callable"); 40 | } 41 | return $obj; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_registerfilter.php: -------------------------------------------------------------------------------- 1 | true, 'post' => true, 'output' => true, 'variable' => true); 27 | 28 | /** 29 | * Registers a filter function 30 | * 31 | * @api Smarty::registerFilter() 32 | * 33 | * @link http://www.smarty.net/docs/en/api.register.filter.tpl 34 | * 35 | * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj 36 | * @param string $type filter type 37 | * @param callback $callback 38 | * @param string|null $name optional filter name 39 | * 40 | * @return \Smarty|\Smarty_Internal_Template 41 | * @throws \SmartyException 42 | */ 43 | public function registerFilter(Smarty_Internal_TemplateBase $obj, $type, $callback, $name = null) 44 | { 45 | $smarty = $obj->_getSmartyObj(); 46 | $this->_checkFilterType($type); 47 | $name = isset($name) ? $name : $this->_getFilterName($callback); 48 | if (!is_callable($callback)) { 49 | throw new SmartyException("{$type}filter '{$name}' not callable"); 50 | } 51 | $smarty->registered_filters[ $type ][ $name ] = $callback; 52 | return $obj; 53 | } 54 | 55 | /** 56 | * Return internal filter name 57 | * 58 | * @param callback $function_name 59 | * 60 | * @return string internal filter name 61 | */ 62 | public function _getFilterName($function_name) 63 | { 64 | if (is_array($function_name)) { 65 | $_class_name = (is_object($function_name[ 0 ]) ? get_class($function_name[ 0 ]) : $function_name[ 0 ]); 66 | return $_class_name . '_' . $function_name[ 1 ]; 67 | } elseif (is_string($function_name)) { 68 | return $function_name; 69 | } else { 70 | return 'closure'; 71 | } 72 | } 73 | 74 | /** 75 | * Check if filter type is valid 76 | * 77 | * @param string $type 78 | * 79 | * @throws \SmartyException 80 | */ 81 | public function _checkFilterType($type) 82 | { 83 | if (!isset($this->filterTypes[ $type ])) { 84 | throw new SmartyException("Illegal filter type '{$type}'"); 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_registerplugin.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 47 | if (isset($smarty->registered_plugins[ $type ][ $name ])) { 48 | throw new SmartyException("Plugin tag '{$name}' already registered"); 49 | } elseif (!is_callable($callback)) { 50 | throw new SmartyException("Plugin '{$name}' not callable"); 51 | } else { 52 | $smarty->registered_plugins[ $type ][ $name ] = array($callback, (bool)$cacheable, (array)$cache_attr); 53 | } 54 | return $obj; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_registerresource.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 42 | $smarty->registered_resources[ $name ] = 43 | $resource_handler instanceof Smarty_Resource ? $resource_handler : array($resource_handler, false); 44 | return $obj; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_setautoloadfilters.php: -------------------------------------------------------------------------------- 1 | true, 'post' => true, 'output' => true, 'variable' => true); 27 | 28 | /** 29 | * Set autoload filters 30 | * 31 | * @api Smarty::setAutoloadFilters() 32 | * 33 | * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj 34 | * @param array $filters filters to load automatically 35 | * @param string $type "pre", "output", … specify 36 | * the filter type to set. 37 | * Defaults to none treating 38 | * $filters' keys as the 39 | * appropriate types 40 | * 41 | * @return \Smarty|\Smarty_Internal_Template 42 | * @throws \SmartyException 43 | */ 44 | public function setAutoloadFilters(Smarty_Internal_TemplateBase $obj, $filters, $type = null) 45 | { 46 | $smarty = $obj->_getSmartyObj(); 47 | if ($type !== null) { 48 | $this->_checkFilterType($type); 49 | $smarty->autoload_filters[ $type ] = (array)$filters; 50 | } else { 51 | foreach ((array)$filters as $type => $value) { 52 | $this->_checkFilterType($type); 53 | } 54 | $smarty->autoload_filters = (array)$filters; 55 | } 56 | return $obj; 57 | } 58 | 59 | /** 60 | * Check if filter type is valid 61 | * 62 | * @param string $type 63 | * 64 | * @throws \SmartyException 65 | */ 66 | public function _checkFilterType($type) 67 | { 68 | if (!isset($this->filterTypes[ $type ])) { 69 | throw new SmartyException("Illegal filter type '{$type}'"); 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_setdebugtemplate.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 35 | if (!is_readable($tpl_name)) { 36 | throw new SmartyException("Unknown file '{$tpl_name}'"); 37 | } 38 | $smarty->debug_tpl = $tpl_name; 39 | return $obj; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_setdefaultmodifiers.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 35 | $smarty->default_modifiers = (array)$modifiers; 36 | return $obj; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_unloadfilter.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 31 | $this->_checkFilterType($type); 32 | if (isset($smarty->registered_filters[ $type ])) { 33 | $_filter_name = "smarty_{$type}filter_{$name}"; 34 | if (isset($smarty->registered_filters[ $type ][ $_filter_name ])) { 35 | unset($smarty->registered_filters[ $type ][ $_filter_name ]); 36 | if (empty($smarty->registered_filters[ $type ])) { 37 | unset($smarty->registered_filters[ $type ]); 38 | } 39 | } 40 | } 41 | return $obj; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_unregistercacheresource.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 35 | if (isset($smarty->registered_cache_resources[ $name ])) { 36 | unset($smarty->registered_cache_resources[ $name ]); 37 | } 38 | return $obj; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_unregisterfilter.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 31 | $this->_checkFilterType($type); 32 | if (isset($smarty->registered_filters[ $type ])) { 33 | $name = is_string($callback) ? $callback : $this->_getFilterName($callback); 34 | if (isset($smarty->registered_filters[ $type ][ $name ])) { 35 | unset($smarty->registered_filters[ $type ][ $name ]); 36 | if (empty($smarty->registered_filters[ $type ])) { 37 | unset($smarty->registered_filters[ $type ]); 38 | } 39 | } 40 | } 41 | return $obj; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_unregisterobject.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 35 | if (isset($smarty->registered_objects[ $object_name ])) { 36 | unset($smarty->registered_objects[ $object_name ]); 37 | } 38 | return $obj; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_unregisterplugin.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 36 | if (isset($smarty->registered_plugins[ $type ][ $name ])) { 37 | unset($smarty->registered_plugins[ $type ][ $name ]); 38 | } 39 | return $obj; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_method_unregisterresource.php: -------------------------------------------------------------------------------- 1 | _getSmartyObj(); 35 | if (isset($smarty->registered_resources[ $type ])) { 36 | unset($smarty->registered_resources[ $type ]); 37 | } 38 | return $obj; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_nocache_insert.php: -------------------------------------------------------------------------------- 1 | assign('{$_assign}' , {$_function} (" . var_export($_attr, true) . 41 | ',\$_smarty_tpl), true);?>'; 42 | } else { 43 | $_output .= "echo {$_function}(" . var_export($_attr, true) . ',$_smarty_tpl);?>'; 44 | } 45 | $_tpl = $_template; 46 | while ($_tpl->_isSubTpl()) { 47 | $_tpl = $_tpl->parent; 48 | } 49 | return "/*%%SmartyNocache:{$_tpl->compiled->nocache_hash}%%*/{$_output}/*/%%SmartyNocache:{$_tpl->compiled->nocache_hash}%%*/"; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_parsetree.php: -------------------------------------------------------------------------------- 1 | data = null; 48 | $this->subtrees = null; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_parsetree_code.php: -------------------------------------------------------------------------------- 1 | data = $data; 29 | } 30 | 31 | /** 32 | * Return buffer content in parentheses 33 | * 34 | * @param \Smarty_Internal_Templateparser $parser 35 | * 36 | * @return string content 37 | */ 38 | public function to_smarty_php(Smarty_Internal_Templateparser $parser) 39 | { 40 | return sprintf('(%s)', $this->data); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_parsetree_dqcontent.php: -------------------------------------------------------------------------------- 1 | data = $data; 29 | } 30 | 31 | /** 32 | * Return content as double quoted string 33 | * 34 | * @param \Smarty_Internal_Templateparser $parser 35 | * 36 | * @return string doubled quoted string 37 | */ 38 | public function to_smarty_php(Smarty_Internal_Templateparser $parser) 39 | { 40 | return '"' . $this->data . '"'; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_parsetree_tag.php: -------------------------------------------------------------------------------- 1 | data = $data; 37 | $this->saved_block_nesting = $parser->block_nesting_level; 38 | } 39 | 40 | /** 41 | * Return buffer content 42 | * 43 | * @param \Smarty_Internal_Templateparser $parser 44 | * 45 | * @return string content 46 | */ 47 | public function to_smarty_php(Smarty_Internal_Templateparser $parser) 48 | { 49 | return $this->data; 50 | } 51 | 52 | /** 53 | * Return complied code that loads the evaluated output of buffer content into a temporary variable 54 | * 55 | * @param \Smarty_Internal_Templateparser $parser 56 | * 57 | * @return string template code 58 | */ 59 | public function assign_to_var(Smarty_Internal_Templateparser $parser) 60 | { 61 | $var = $parser->compiler->getNewPrefixVariable(); 62 | $tmp = $parser->compiler->appendCode('', $this->data); 63 | $tmp = $parser->compiler->appendCode($tmp, ""); 64 | $parser->compiler->prefix_code[] = sprintf('%s', $tmp); 65 | return $var; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_parsetree_text.php: -------------------------------------------------------------------------------- 1 | data = $data; 27 | } 28 | 29 | /** 30 | * Return buffer content 31 | * 32 | * @param \Smarty_Internal_Templateparser $parser 33 | * 34 | * @return string text 35 | */ 36 | public function to_smarty_php(Smarty_Internal_Templateparser $parser) 37 | { 38 | return $this->data; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_resource_stream.php: -------------------------------------------------------------------------------- 1 | resource, '://') !== false) { 33 | $source->filepath = $source->resource; 34 | } else { 35 | $source->filepath = str_replace(':', '://', $source->resource); 36 | } 37 | $source->uid = false; 38 | $source->content = $this->getContent($source); 39 | $source->timestamp = $source->exists = !!$source->content; 40 | } 41 | 42 | /** 43 | * Load template's source from stream into current template object 44 | * 45 | * @param Smarty_Template_Source $source source object 46 | * 47 | * @return string template source 48 | */ 49 | public function getContent(Smarty_Template_Source $source) 50 | { 51 | $t = ''; 52 | // the availability of the stream has already been checked in Smarty_Resource::fetch() 53 | $fp = fopen($source->filepath, 'r+'); 54 | if ($fp) { 55 | while (!feof($fp) && ($current_line = fgets($fp)) !== false) { 56 | $t .= $current_line; 57 | } 58 | fclose($fp); 59 | return $t; 60 | } else { 61 | return false; 62 | } 63 | } 64 | 65 | /** 66 | * modify resource_name according to resource handlers specifications 67 | * 68 | * @param Smarty $smarty Smarty instance 69 | * @param string $resource_name resource_name to make unique 70 | * @param boolean $isConfig flag for config resource 71 | * 72 | * @return string unique resource name 73 | */ 74 | public function buildUniqueResourceName(Smarty $smarty, $resource_name, $isConfig = false) 75 | { 76 | return get_class($this) . '#' . $resource_name; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_runtime_cachemodify.php: -------------------------------------------------------------------------------- 1 | isCached() && !$_template->compiled->has_nocache_code; 25 | $_last_modified_date = 26 | @substr($_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ], 0, strpos($_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ], 'GMT') + 3); 27 | if ($_isCached && $cached->timestamp <= strtotime($_last_modified_date)) { 28 | switch (PHP_SAPI) { 29 | case 'cgi': // php-cgi < 5.3 30 | case 'cgi-fcgi': // php-cgi >= 5.3 31 | case 'fpm-fcgi': // php-fpm >= 5.3.3 32 | header('Status: 304 Not Modified'); 33 | break; 34 | case 'cli': 35 | if (/* ^phpunit */ 36 | !empty($_SERVER[ 'SMARTY_PHPUNIT_DISABLE_HEADERS' ]) /* phpunit$ */ 37 | ) { 38 | $_SERVER[ 'SMARTY_PHPUNIT_HEADERS' ][] = '304 Not Modified'; 39 | } 40 | break; 41 | default: 42 | if (/* ^phpunit */ 43 | !empty($_SERVER[ 'SMARTY_PHPUNIT_DISABLE_HEADERS' ]) /* phpunit$ */ 44 | ) { 45 | $_SERVER[ 'SMARTY_PHPUNIT_HEADERS' ][] = '304 Not Modified'; 46 | } else { 47 | header($_SERVER[ 'SERVER_PROTOCOL' ] . ' 304 Not Modified'); 48 | } 49 | break; 50 | } 51 | } else { 52 | switch (PHP_SAPI) { 53 | case 'cli': 54 | if (/* ^phpunit */ 55 | !empty($_SERVER[ 'SMARTY_PHPUNIT_DISABLE_HEADERS' ]) /* phpunit$ */ 56 | ) { 57 | $_SERVER[ 'SMARTY_PHPUNIT_HEADERS' ][] = 58 | 'Last-Modified: ' . gmdate('D, d M Y H:i:s', $cached->timestamp) . ' GMT'; 59 | } 60 | break; 61 | default: 62 | header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $cached->timestamp) . ' GMT'); 63 | break; 64 | } 65 | echo $content; 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_runtime_make_nocache.php: -------------------------------------------------------------------------------- 1 | tpl_vars[ $var ])) { 24 | $export = 25 | preg_replace('/^Smarty_Variable::__set_state[(]|[)]$/', '', var_export($tpl->tpl_vars[ $var ], true)); 26 | if (preg_match('/(\w+)::__set_state/', $export, $match)) { 27 | throw new SmartyException("{make_nocache \${$var}} in template '{$tpl->source->name}': variable does contain object '{$match[1]}' not implementing method '__set_state'"); 28 | } 29 | echo "/*%%SmartyNocache:{$tpl->compiled->nocache_hash}%%*/smarty->ext->_make_nocache->store(\$_smarty_tpl, '{$var}', ", '\\') . 31 | $export . ");?>\n/*/%%SmartyNocache:{$tpl->compiled->nocache_hash}%%*/"; 32 | } 33 | } 34 | 35 | /** 36 | * Store variable value saved while rendering compiled template in cached template context 37 | * 38 | * @param \Smarty_Internal_Template $tpl 39 | * @param string $var variable name 40 | * @param array $properties 41 | */ 42 | public function store(Smarty_Internal_Template $tpl, $var, $properties) 43 | { 44 | // do not overwrite existing nocache variables 45 | if (!isset($tpl->tpl_vars[ $var ]) || !$tpl->tpl_vars[ $var ]->nocache) { 46 | $newVar = new Smarty_Variable(); 47 | unset($properties[ 'nocache' ]); 48 | foreach ($properties as $k => $v) { 49 | $newVar->$k = $v; 50 | } 51 | $tpl->tpl_vars[ $var ] = $newVar; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_internal_undefined.php: -------------------------------------------------------------------------------- 1 | class = $class; 29 | } 30 | 31 | /** 32 | * Wrapper for obsolete class Smarty_Internal_Runtime_ValidateCompiled 33 | * 34 | * @param \Smarty_Internal_Template $tpl 35 | * @param array $properties special template properties 36 | * @param bool $cache flag if called from cache file 37 | * 38 | * @return bool false 39 | */ 40 | public function decodeProperties(Smarty_Internal_Template $tpl, $properties, $cache = false) 41 | { 42 | if ($cache) { 43 | $tpl->cached->valid = false; 44 | } else { 45 | $tpl->mustCompile = true; 46 | } 47 | return false; 48 | } 49 | 50 | /** 51 | * Call error handler for undefined method 52 | * 53 | * @param string $name unknown method-name 54 | * @param array $args argument array 55 | * 56 | * @return mixed 57 | * @throws SmartyException 58 | */ 59 | public function __call($name, $args) 60 | { 61 | if (isset($this->class)) { 62 | throw new SmartyException("undefined extension class '{$this->class}'"); 63 | } else { 64 | throw new SmartyException(get_class($args[ 0 ]) . "->{$name}() undefined method"); 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_resource_recompiled.php: -------------------------------------------------------------------------------- 1 | compiled; 43 | $compiled->file_dependency = array(); 44 | $compiled->includes = array(); 45 | $compiled->nocache_hash = null; 46 | $compiled->unifunc = null; 47 | $level = ob_get_level(); 48 | ob_start(); 49 | $_smarty_tpl->loadCompiler(); 50 | // call compiler 51 | try { 52 | eval('?>' . $_smarty_tpl->compiler->compileTemplate($_smarty_tpl)); 53 | } catch (Exception $e) { 54 | unset($_smarty_tpl->compiler); 55 | while (ob_get_level() > $level) { 56 | ob_end_clean(); 57 | } 58 | throw $e; 59 | } 60 | // release compiler object to free memory 61 | unset($_smarty_tpl->compiler); 62 | ob_get_clean(); 63 | $compiled->timestamp = time(); 64 | $compiled->exists = true; 65 | } 66 | 67 | /** 68 | * populate Compiled Object with compiled filepath 69 | * 70 | * @param Smarty_Template_Compiled $compiled compiled object 71 | * @param Smarty_Internal_Template $_template template object 72 | * 73 | * @return void 74 | */ 75 | public function populateCompiledFilepath(Smarty_Template_Compiled $compiled, Smarty_Internal_Template $_template) 76 | { 77 | $compiled->filepath = false; 78 | $compiled->timestamp = false; 79 | $compiled->exists = false; 80 | } 81 | 82 | /* 83 | * Disable timestamp checks for recompiled resource. 84 | * 85 | * @return bool 86 | */ 87 | /** 88 | * @return bool 89 | */ 90 | public function checkTimestamps() 91 | { 92 | return false; 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_resource_uncompiled.php: -------------------------------------------------------------------------------- 1 | filepath = $_template->source->filepath; 42 | $compiled->timestamp = $_template->source->timestamp; 43 | $compiled->exists = $_template->source->exists; 44 | if ($_template->smarty->merge_compiled_includes || $_template->source->handler->checkTimestamps()) { 45 | $compiled->file_dependency[ $_template->source->uid ] = 46 | array($compiled->filepath, $compiled->timestamp, $_template->source->type,); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smarty_undefined_variable.php: -------------------------------------------------------------------------------- 1 | value = $value; 35 | $this->nocache = $nocache; 36 | } 37 | 38 | /** 39 | * <> String conversion 40 | * 41 | * @return string 42 | */ 43 | public function __toString() 44 | { 45 | return (string)$this->value; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smartycompilerexception.php: -------------------------------------------------------------------------------- 1 | Smarty Compiler: ' . $this->message . ' <-- '; 16 | } 17 | 18 | /** 19 | * The line number of the template error 20 | * 21 | * @type int|null 22 | */ 23 | public $line = null; 24 | 25 | /** 26 | * The template source snippet relating to the error 27 | * 28 | * @type string|null 29 | */ 30 | public $source = null; 31 | 32 | /** 33 | * The raw text of the error message 34 | * 35 | * @type string|null 36 | */ 37 | public $desc = null; 38 | 39 | /** 40 | * The resource identifier or template name 41 | * 42 | * @type string|null 43 | */ 44 | public $template = null; 45 | } 46 | -------------------------------------------------------------------------------- /App/smart/sysplugins/smartyexception.php: -------------------------------------------------------------------------------- 1 | Smarty: ' . (self::$escape ? htmlentities($this->message) : $this->message) . ' <-- '; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Controller/Controller.php: -------------------------------------------------------------------------------- 1 | upload = new Null\upload\upload(); 7 | $this->smart = new Smarty(); 8 | $this->smart->template_dir = __D__."/public/"; 9 | $this->smart->assign("UI_CSS","/public/UI/semantic.css"); 10 | $this->smart->assign("UI_JS", "/public/UI/semantic.js"); 11 | $this->smart->assign("UI_JQ", "/public/UI/jq.js"); 12 | 13 | $this->smart->assign("index_css","/public/css/index.css"); 14 | $this->smart->assign("prism_css","/public/css/prism.css"); 15 | $this->smart->assign("logo_img","/public/img/logo.png"); 16 | $this->smart->assign("index_js","/public/js/index.js"); 17 | $this->smart->assign("jq_js","/public/js/jquery.min.js"); 18 | 19 | $this->smart->assign("star_app","/public/star/app.js"); 20 | $this->smart->assign("star_css","/public/star/app.min.css"); 21 | $this->smart->assign("star_krhrpeyDEQknQgyhxrvn","/public/star/krhrpeyDEQknQgyhxrvn.js"); 22 | $this->smart->assign("star_sNuMVECHBxUzZGrbnpKK","/public/star/sNuMVECHBxUzZGrbnpKK.js"); 23 | } 24 | } 25 | 26 | 27 | ?> -------------------------------------------------------------------------------- /Controller/Home/Upload.php: -------------------------------------------------------------------------------- 1 | smart->assign("expTitle","任意文件上传"); 6 | $this->smart->assign("alt","你可以使用这个漏洞做出任何你想做的事情"); 7 | $this->smart->assign("alt_1","请使用下面的表单进行上传文件"); 8 | $this->smart->assign("action","/index.php/Home/Upload/upload_one"); 9 | $res = $this->upload->upload('file',''); 10 | $this->smart->assign("data",$res); 11 | $this->smart->display('upload.html'); 12 | } 13 | 14 | public function upload_tow(){ 15 | $this->smart->assign("expTitle","任意文件上传"); 16 | $this->smart->assign("alt","你可以使用这个漏洞做出任何你想做的事情"); 17 | $this->smart->assign("alt_1","请使用下面的表单进行上传文件"); 18 | $this->smart->assign("action","/index.php/Home/Upload/upload_tow"); 19 | $res = $this->upload->upload('file','type'); 20 | $this->smart->assign("data",$res); 21 | $this->smart->display('upload.html'); 22 | } 23 | 24 | 25 | public function upload_three(){ 26 | $this->smart->assign("expTitle","任意文件上传"); 27 | $this->smart->assign("alt","你可以使用这个漏洞做出任何你想做的事情"); 28 | $this->smart->assign("alt_1","请使用下面的表单进行上传文件"); 29 | $this->smart->assign("action","/index.php/Home/Upload/upload_three"); 30 | $res = $this->upload->upload('file','white'); 31 | $this->smart->assign("data",$res); 32 | $this->smart->display('upload.html'); 33 | } 34 | 35 | public function upload_four(){ 36 | $this->smart->assign("expTitle","任意文件上传"); 37 | $this->smart->assign("alt","你可以使用这个漏洞做出任何你想做的事情"); 38 | $this->smart->assign("alt_1","请使用下面的表单进行上传文件"); 39 | $this->smart->assign("action","/index.php/Home/Upload/upload_four"); 40 | $res = $this->upload->upload('file','black'); 41 | $this->smart->assign("data",$res); 42 | $this->smart->display('upload.html'); 43 | } 44 | 45 | public function upload_five(){ 46 | $this->smart->assign("expTitle","任意文件上传"); 47 | $this->smart->assign("alt","你可以使用这个漏洞做出任何你想做的事情"); 48 | $this->smart->assign("alt_1","请使用下面的表单进行上传文件"); 49 | $this->smart->assign("action","/index.php/Home/Upload/upload_five"); 50 | $res = $this->upload->upload('file','content'); 51 | $this->smart->assign("data",$res); 52 | $this->smart->display('upload.html'); 53 | } 54 | } -------------------------------------------------------------------------------- /Controller/Home/Xxe.php: -------------------------------------------------------------------------------- 1 | smart->assign("expTitle","XXE漏洞"); 8 | $this->smart->assign("alt","你可以使用这个漏洞做出任何你想做的事情"); 9 | $this->smart->assign("alt_1","请使用POST传入XML格式数据进行测试漏洞,程序会解析name标签"); 10 | $this->smart->assign("data",$xml->name); 11 | $this->smart->display("xxe.html"); 12 | } 13 | 14 | 15 | public function xxe_tow(){ 16 | $xml = file_get_contents("php://input"); 17 | $xml = simplexml_load_string($xml); 18 | $this->smart->assign("expTitle","XXE漏洞"); 19 | $this->smart->assign("alt","你可以使用这个漏洞做出任何你想做的事情"); 20 | $this->smart->assign("alt_1","请使用POST传入XML格式数据进行测试漏洞"); 21 | $this->smart->assign("data","成功解析XML数据"); 22 | $this->smart->display("xxe.html"); 23 | } 24 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP训练靶场,一款集合了常见的PHP漏洞的练习平台 2 | 3 | ![](./img/1.png) 4 | 5 | # 法律声明: 6 | 7 | ``` 8 | 1.依据《刑法修正案(七)》第9条增订的《刑法》第285条第3款的规定,犯提供非法侵入或者控制计算机信息系罪的,处3年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处3年以上7年以下有期徒刑,并处罚金。 9 | 2.第二百八十五条第二款 违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。 10 | 3.刑法第二百五十三条之一:“国家机关或者金融、电信、交通、教育、医疗等单位的工作人员,违反国家规定,将本单位在履行职责或者提供服务过程中获得的公民个人信息,出售或者非法提供给他人,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金。情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。 11 | ``` 12 | 13 | # 版权声明: 14 | 15 | **由于传播、利用此靶场所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,靶场作者不为此承担任何责任。** 16 | 17 | **开普勒安全团队 拥有对此靶场的修改和解释权如欲转载或传播此靶场,包括版权声明等全部内容。** 18 | 19 | **未经允许,不得任意修改或者增减此靶场内容,不得以任何方式将其用于商业目的。** 20 | 21 | **本靶场已获得原有基础靶场的正版授权@小透明,禁止再次二次更改代码。 ** 22 | 23 | **程序可能存在一些已知Bug,此版本为2021.07.01版本,后续版本已修复许多已知问题**。 24 | 25 | **后续将导入逻辑漏洞练习板块。** 26 | 27 | # 感谢名单: 28 | 29 | #### @小透明 :: 提供原有基础靶场核心内容和开发思路 30 | 31 | #### @grep :: 提供UI基础文件 32 | 33 | #### @Alan星球全体成员 :: 信任与支持 34 | 35 | ### (以上排名不分先后) 36 | 37 | # 安装方法: 38 | 39 | 修改数据库配置,文件位置: 40 | 41 | \APP\mysql.class.php 42 | 43 | 代码内容:mysqli('127.0.0.1','root','root','kepp'); 44 | 45 | 使用数据库导入工具把kepp.sql导入到数据库中即可使用 46 | 47 | # 如有其他问题可联系我处理 48 | 49 | ## 邮箱: admin@360bug.net -------------------------------------------------------------------------------- /img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/img/1.png -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /localhost.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 3.5.8.2 3 | -- http://www.phpmyadmin.net 4 | -- 5 | -- 主机: localhost 6 | -- 生成日期: 2021 年 05 月 05 日 17:02 7 | -- 服务器版本: 5.5.35 8 | -- PHP 版本: 5.4.24 9 | 10 | SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; 11 | SET time_zone = "+00:00"; 12 | 13 | 14 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 15 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 16 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 17 | /*!40101 SET NAMES utf8 */; 18 | 19 | -- 20 | -- 数据库: `kepp` 21 | -- 22 | CREATE DATABASE `kepp` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 23 | USE `kepp`; 24 | 25 | -- -------------------------------------------------------- 26 | 27 | -- 28 | -- 表的结构 `sql_user` 29 | -- 30 | 31 | CREATE TABLE IF NOT EXISTS `sql_user` ( 32 | `Id` int(11) NOT NULL AUTO_INCREMENT, 33 | `Username` varchar(255) DEFAULT NULL, 34 | `Password` varchar(255) DEFAULT NULL, 35 | `email` varchar(255) DEFAULT NULL, 36 | `blog` varchar(255) DEFAULT NULL, 37 | PRIMARY KEY (`Id`) 38 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; 39 | 40 | -- 41 | -- 转存表中的数据 `sql_user` 42 | -- 43 | 44 | INSERT INTO `sql_user` (`Id`, `Username`, `Password`, `email`, `blog`) VALUES 45 | (1, 'admin', 'admin', 'admin@360bug.net', 'http://www.360bug.net/'), 46 | (2, 'admin888', 'admin888', 'root@360bug.net', 'http://www.360bug.net/'); 47 | 48 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 49 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 50 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 51 | -------------------------------------------------------------------------------- /public/UI/.versions: -------------------------------------------------------------------------------- 1 | jquery@1.11.3_2 2 | meteor@1.1.6 3 | semantic:ui-css@2.0.7 4 | underscore@1.0.3 5 | -------------------------------------------------------------------------------- /public/UI/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Semantic Org 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 | 23 | -------------------------------------------------------------------------------- /public/UI/README.md: -------------------------------------------------------------------------------- 1 | # CSS Distribution 2 | 3 | This repository is automatically synced with the main [Semantic UI](https://github.com/Semantic-Org/Semantic-UI) repository to provide lightweight CSS only version of Semantic UI. 4 | 5 | This package **does not support theming** and includes generated CSS files of the default theme only. 6 | 7 | You can view more on Semantic UI at [LearnSemantic.com](http://www.learnsemantic.com) and [Semantic-UI.com](http://www.semantic-ui.com) 8 | -------------------------------------------------------------------------------- /public/UI/components/ad.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.1 - Ad 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Copyright 2013 Contributors 7 | * Released under the MIT license 8 | * http://opensource.org/licenses/MIT 9 | * 10 | */.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child{margin:0}.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);content:'Ad';color:#fff;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)} -------------------------------------------------------------------------------- /public/UI/components/breadcrumb.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.1 - Breadcrumb 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Breadcrumb 14 | *******************************/ 15 | 16 | .ui.breadcrumb { 17 | line-height: 1; 18 | display: inline-block; 19 | margin: 0em 0em; 20 | vertical-align: middle; 21 | } 22 | .ui.breadcrumb:first-child { 23 | margin-top: 0em; 24 | } 25 | .ui.breadcrumb:last-child { 26 | margin-bottom: 0em; 27 | } 28 | 29 | 30 | /******************************* 31 | Content 32 | *******************************/ 33 | 34 | 35 | /* Divider */ 36 | .ui.breadcrumb .divider { 37 | display: inline-block; 38 | opacity: 0.7; 39 | margin: 0em 0.21428571rem 0em; 40 | font-size: 0.92857143em; 41 | color: rgba(0, 0, 0, 0.4); 42 | vertical-align: baseline; 43 | } 44 | 45 | /* Link */ 46 | .ui.breadcrumb a { 47 | color: #4183C4; 48 | } 49 | .ui.breadcrumb a:hover { 50 | color: #1e70bf; 51 | } 52 | 53 | /* Icon Divider */ 54 | .ui.breadcrumb .icon.divider { 55 | font-size: 0.85714286em; 56 | vertical-align: baseline; 57 | } 58 | 59 | /* Section */ 60 | .ui.breadcrumb a.section { 61 | cursor: pointer; 62 | } 63 | .ui.breadcrumb .section { 64 | display: inline-block; 65 | margin: 0em; 66 | padding: 0em; 67 | } 68 | 69 | /* Loose Coupling */ 70 | .ui.breadcrumb.segment { 71 | display: inline-block; 72 | padding: 0.78571429em 1em; 73 | } 74 | 75 | 76 | /******************************* 77 | States 78 | *******************************/ 79 | 80 | .ui.breadcrumb .active.section { 81 | font-weight: bold; 82 | } 83 | 84 | 85 | /******************************* 86 | Variations 87 | *******************************/ 88 | 89 | .ui.mini.breadcrumb { 90 | font-size: 0.78571429rem; 91 | } 92 | .ui.tiny.breadcrumb { 93 | font-size: 0.85714286rem; 94 | } 95 | .ui.small.breadcrumb { 96 | font-size: 0.92857143rem; 97 | } 98 | .ui.breadcrumb { 99 | font-size: 1rem; 100 | } 101 | .ui.large.breadcrumb { 102 | font-size: 1.14285714rem; 103 | } 104 | .ui.big.breadcrumb { 105 | font-size: 1.28571429rem; 106 | } 107 | .ui.huge.breadcrumb { 108 | font-size: 1.42857143rem; 109 | } 110 | .ui.massive.breadcrumb { 111 | font-size: 1.71428571rem; 112 | } 113 | 114 | 115 | /******************************* 116 | Theme Overrides 117 | *******************************/ 118 | 119 | 120 | 121 | /******************************* 122 | Site Overrides 123 | *******************************/ 124 | 125 | -------------------------------------------------------------------------------- /public/UI/components/breadcrumb.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.1 - Breadcrumb 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.breadcrumb{line-height:1;display:inline-block;margin:0 0;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem 0;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#4183c4}.ui.breadcrumb a:hover{color:#1e70bf}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.78571429em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:.78571429rem}.ui.tiny.breadcrumb{font-size:.85714286rem}.ui.small.breadcrumb{font-size:.92857143rem}.ui.breadcrumb{font-size:1rem}.ui.large.breadcrumb{font-size:1.14285714rem}.ui.big.breadcrumb{font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:1.71428571rem} -------------------------------------------------------------------------------- /public/UI/components/container.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.1 - Container 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.container{display:block;max-width:100%!important}@media only screen and (max-width:767px){.ui.container{width:auto!important;margin-left:1em!important;margin-right:1em!important}.ui.grid.container{width:auto!important}.ui.relaxed.grid.container{width:auto!important}.ui.very.relaxed.grid.container{width:auto!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.container{width:723px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(723px + 2rem)!important}.ui.relaxed.grid.container{width:calc(723px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(723px + 5rem)!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.container{width:933px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(933px + 2rem)!important}.ui.relaxed.grid.container{width:calc(933px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(933px + 5rem)!important}}@media only screen and (min-width:1200px){.ui.container{width:1127px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(1127px + 2rem)!important}.ui.relaxed.grid.container{width:calc(1127px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(1127px + 5rem)!important}}.ui.text.container{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;max-width:700px!important;line-height:1.5}.ui.text.container{font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto} -------------------------------------------------------------------------------- /public/UI/components/embed.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.0 - Video 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#dcddde;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.embed>.embed{display:none}.ui.embed>.placeholder{position:absolute;cursor:pointer;top:0;left:0;display:block;width:100%;height:100%;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>.icon{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.ui.embed>.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:'';background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;-webkit-transition:opacity .5s ease;transition:opacity .5s ease}.ui.embed>.icon:before{position:absolute;top:50%;left:50%;z-index:4;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);color:#fff;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);-webkit-transition:opacity .5s ease,color .5s ease;transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed .icon:hover:after{background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed .icon:hover:before{color:#fff}.ui.active.embed>.icon,.ui.active.embed>.placeholder{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%} -------------------------------------------------------------------------------- /public/UI/components/nag.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.0 - Nag 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.2);box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1rem;text-align:center;color:rgba(0,0,0,.87);border-radius:0 0 .28571429rem .28571429rem;-webkit-transition:.2s background ease;transition:.2s background ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.28571429rem .28571429rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f3f4f5;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.bottom.nags .nag:last-child{border-radius:.28571429rem .28571429rem 0 0} -------------------------------------------------------------------------------- /public/UI/components/rail.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.1 - Rail 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.rail{position:absolute;top:0;width:300px;height:100%}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.dividing.rail{width:302.5px}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(34,36,38,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(34,36,38,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.rail{width:calc(300px + 1em)}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.rail{width:calc(300px + .5em)}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.mini.rail{font-size:.78571429rem}.ui.tiny.rail{font-size:.85714286rem}.ui.small.rail{font-size:.92857143rem}.ui.rail{font-size:1rem}.ui.large.rail{font-size:1.14285714rem}.ui.big.rail{font-size:1.28571429rem}.ui.huge.rail{font-size:1.42857143rem}.ui.massive.rail{font-size:1.71428571rem} -------------------------------------------------------------------------------- /public/UI/components/reset.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.1 - Reset 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}html{-webkit-box-sizing:border-box;box-sizing:border-box}input[type=email],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;-moz-appearance:none}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none} -------------------------------------------------------------------------------- /public/UI/components/shape.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.0 - Shape 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.shape{position:relative;vertical-align:top;display:inline-block;-webkit-perspective:2000px;perspective:2000px;-webkit-transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out}.ui.shape .sides{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.shape .side{display:none}.ui.shape .side *{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.87);-webkit-box-shadow:0 0 2px rgba(0,0,0,.3);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;display:block;z-index:100}.ui.shape .hidden.side{opacity:.6}.ui.shape.animating .sides{position:absolute}.ui.shape.animating .sides{-webkit-transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block} -------------------------------------------------------------------------------- /public/UI/components/site.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.1 - Site 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin);body,html{height:100%}html{font-size:14px}body{margin:0;padding:0;overflow-x:hidden;min-width:320px;background:#fff;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:14px;line-height:1.4285em;color:rgba(0,0,0,.87);font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;line-height:1.28571429em;margin:calc(2rem - .14285714em) 0 1rem;font-weight:700;padding:0}h1{min-height:1rem;font-size:2rem}h2{font-size:1.71428571rem}h3{font-size:1.28571429rem}h4{font-size:1.07142857rem}h5{font-size:1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child{margin-bottom:0}p{margin:0 0 1em;line-height:1.4285em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{color:#4183c4;text-decoration:none}a:hover{color:#1e70bf;text-decoration:none}::-webkit-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::-moz-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}input::-webkit-selection,textarea::-webkit-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::-moz-selection,textarea::-moz-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::selection,textarea::selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}body ::-webkit-scrollbar{-webkit-appearance:none;width:10px;height:10px}body ::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:0}body ::-webkit-scrollbar-thumb{cursor:pointer;border-radius:5px;background:rgba(0,0,0,.25);-webkit-transition:color .2s ease;transition:color .2s ease}body ::-webkit-scrollbar-thumb:window-inactive{background:rgba(0,0,0,.15)}body ::-webkit-scrollbar-thumb:hover{background:rgba(128,135,139,.8)}body .ui.inverted::-webkit-scrollbar-track{background:rgba(255,255,255,.1)}body .ui.inverted::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25)}body .ui.inverted::-webkit-scrollbar-thumb:window-inactive{background:rgba(255,255,255,.15)}body .ui.inverted::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.35)} -------------------------------------------------------------------------------- /public/UI/components/sticky.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.0 - Sticky 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Sticky 14 | *******************************/ 15 | 16 | .ui.sticky { 17 | position: static; 18 | -webkit-transition: none; 19 | transition: none; 20 | z-index: 800; 21 | } 22 | 23 | 24 | /******************************* 25 | States 26 | *******************************/ 27 | 28 | 29 | /* Bound */ 30 | .ui.sticky.bound { 31 | position: absolute; 32 | left: auto; 33 | right: auto; 34 | } 35 | 36 | /* Fixed */ 37 | .ui.sticky.fixed { 38 | position: fixed; 39 | left: auto; 40 | right: auto; 41 | } 42 | 43 | /* Bound/Fixed Position */ 44 | .ui.sticky.bound.top, 45 | .ui.sticky.fixed.top { 46 | top: 0px; 47 | bottom: auto; 48 | } 49 | .ui.sticky.bound.bottom, 50 | .ui.sticky.fixed.bottom { 51 | top: auto; 52 | bottom: 0px; 53 | } 54 | 55 | 56 | /******************************* 57 | Types 58 | *******************************/ 59 | 60 | .ui.native.sticky { 61 | position: -webkit-sticky; 62 | position: -moz-sticky; 63 | position: -ms-sticky; 64 | position: -o-sticky; 65 | position: sticky; 66 | } 67 | 68 | 69 | /******************************* 70 | Theme Overrides 71 | *******************************/ 72 | 73 | 74 | 75 | /******************************* 76 | Site Overrides 77 | *******************************/ 78 | 79 | -------------------------------------------------------------------------------- /public/UI/components/sticky.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.0 - Sticky 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.sticky{position:static;-webkit-transition:none;transition:none;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky} -------------------------------------------------------------------------------- /public/UI/components/tab.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.0 - Tab 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | UI Tabs 14 | *******************************/ 15 | 16 | .ui.tab { 17 | display: none; 18 | } 19 | 20 | 21 | /******************************* 22 | States 23 | *******************************/ 24 | 25 | 26 | /*-------------------- 27 | Active 28 | ---------------------*/ 29 | 30 | .ui.tab.active, 31 | .ui.tab.open { 32 | display: block; 33 | } 34 | 35 | /*-------------------- 36 | Loading 37 | ---------------------*/ 38 | 39 | .ui.tab.loading { 40 | position: relative; 41 | overflow: hidden; 42 | display: block; 43 | min-height: 250px; 44 | } 45 | .ui.tab.loading * { 46 | position: relative !important; 47 | left: -10000px !important; 48 | } 49 | .ui.tab.loading:before, 50 | .ui.tab.loading.segment:before { 51 | position: absolute; 52 | content: ''; 53 | top: 100px; 54 | left: 50%; 55 | margin: -1.25em 0em 0em -1.25em; 56 | width: 2.5em; 57 | height: 2.5em; 58 | border-radius: 500rem; 59 | border: 0.2em solid rgba(0, 0, 0, 0.1); 60 | } 61 | .ui.tab.loading:after, 62 | .ui.tab.loading.segment:after { 63 | position: absolute; 64 | content: ''; 65 | top: 100px; 66 | left: 50%; 67 | margin: -1.25em 0em 0em -1.25em; 68 | width: 2.5em; 69 | height: 2.5em; 70 | -webkit-animation: button-spin 0.6s linear; 71 | animation: button-spin 0.6s linear; 72 | -webkit-animation-iteration-count: infinite; 73 | animation-iteration-count: infinite; 74 | border-radius: 500rem; 75 | border-color: #767676 transparent transparent; 76 | border-style: solid; 77 | border-width: 0.2em; 78 | -webkit-box-shadow: 0px 0px 0px 1px transparent; 79 | box-shadow: 0px 0px 0px 1px transparent; 80 | } 81 | 82 | 83 | /******************************* 84 | Tab Overrides 85 | *******************************/ 86 | 87 | 88 | 89 | /******************************* 90 | User Overrides 91 | *******************************/ 92 | 93 | -------------------------------------------------------------------------------- /public/UI/components/tab.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.4.0 - Tab 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent} -------------------------------------------------------------------------------- /public/UI/components/video.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.0.0 - Video 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Copyright 2014 Contributors 7 | * Released under the MIT license 8 | * http://opensource.org/licenses/MIT 9 | * 10 | */ 11 | 12 | 13 | /******************************* 14 | Video 15 | *******************************/ 16 | 17 | .ui.video { 18 | background-color: #dddddd; 19 | position: relative; 20 | max-width: 100%; 21 | padding-bottom: 56.25%; 22 | height: 0px; 23 | overflow: hidden; 24 | } 25 | 26 | /*-------------- 27 | Content 28 | ---------------*/ 29 | 30 | 31 | /* Placeholder Image */ 32 | .ui.video .placeholder { 33 | background-color: #333333; 34 | } 35 | 36 | /* Play Icon Overlay */ 37 | .ui.video .play { 38 | cursor: pointer; 39 | position: absolute; 40 | top: 0px; 41 | left: 0px; 42 | z-index: 10; 43 | width: 100%; 44 | height: 100%; 45 | background: transparent; 46 | -webkit-transition: background 0.2s ease; 47 | transition: background 0.2s ease; 48 | } 49 | .ui.video .play.icon:before { 50 | position: absolute; 51 | top: 50%; 52 | left: 50%; 53 | z-index: 11; 54 | -webkit-transform: translateX(-50%) translateY(-50%); 55 | -ms-transform: translateX(-50%) translateY(-50%); 56 | transform: translateX(-50%) translateY(-50%); 57 | color: rgba(255, 255, 255, 0.7); 58 | font-size: 7rem; 59 | text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.15); 60 | -webkit-transition: color 0.2s ease; 61 | transition: color 0.2s ease; 62 | } 63 | .ui.video .placeholder { 64 | position: absolute; 65 | top: 0px; 66 | left: 0px; 67 | display: block; 68 | width: 100%; 69 | height: 100%; 70 | } 71 | 72 | /* IFrame Embed */ 73 | .ui.video .embed iframe, 74 | .ui.video .embed embed, 75 | .ui.video .embed object { 76 | position: absolute; 77 | border: none; 78 | width: 100%; 79 | height: 100%; 80 | top: 0px; 81 | left: 0px; 82 | margin: 0em; 83 | padding: 0em; 84 | } 85 | 86 | 87 | /******************************* 88 | States 89 | *******************************/ 90 | 91 | 92 | /*-------------- 93 | Hover 94 | ---------------*/ 95 | 96 | .ui.video .play:hover { 97 | background: rgba(0, 0, 0, 0); 98 | } 99 | .ui.video .play:hover:before { 100 | color: #ffffff; 101 | } 102 | 103 | /*-------------- 104 | Active 105 | ---------------*/ 106 | 107 | .ui.active.video .play, 108 | .ui.active.video .placeholder { 109 | display: none; 110 | } 111 | .ui.active.video .embed { 112 | display: inline; 113 | } 114 | 115 | 116 | /******************************* 117 | Video Overrides 118 | *******************************/ 119 | 120 | 121 | 122 | /******************************* 123 | Site Overrides 124 | *******************************/ 125 | 126 | -------------------------------------------------------------------------------- /public/UI/components/video.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.0.0 - Video 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Copyright 2014 Contributors 7 | * Released under the MIT license 8 | * http://opensource.org/licenses/MIT 9 | * 10 | */.ui.video{background-color:#ddd;position:relative;max-width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%;background:0 0;-webkit-transition:background .2s ease;transition:background .2s ease}.ui.video .play.icon:before{position:absolute;top:50%;left:50%;z-index:11;-webkit-transform:translateX(-50%)translateY(-50%);-ms-transform:translateX(-50%)translateY(-50%);transform:translateX(-50%)translateY(-50%);color:rgba(255,255,255,.7);font-size:7rem;text-shadow:2px 2px 0 rgba(0,0,0,.15);-webkit-transition:color .2s ease;transition:color .2s ease}.ui.video .placeholder{position:absolute;top:0;left:0;display:block;width:100%;height:100%}.ui.video .embed embed,.ui.video .embed iframe,.ui.video .embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.video .play:hover{background:0 0}.ui.video .play:hover:before{color:#fff}.ui.active.video .placeholder,.ui.active.video .play{display:none}.ui.active.video .embed{display:inline} -------------------------------------------------------------------------------- /public/UI/package.js: -------------------------------------------------------------------------------- 1 | var 2 | where = 'client' // Adds files only to the client 3 | ; 4 | 5 | Package.describe({ 6 | name : 'semantic:ui-css', 7 | summary : 'Semantic UI - CSS Release of Semantic UI', 8 | version : '2.4.1', 9 | git : 'git://github.com/Semantic-Org/Semantic-UI-CSS.git', 10 | }); 11 | 12 | Package.onUse(function(api) { 13 | 14 | api.versionsFrom('1.0'); 15 | 16 | api.use('jquery', 'client'); 17 | 18 | api.addFiles([ 19 | // icons 20 | 'themes/default/assets/fonts/icons.eot', 21 | 'themes/default/assets/fonts/icons.svg', 22 | 'themes/default/assets/fonts/icons.ttf', 23 | 'themes/default/assets/fonts/icons.woff', 24 | 'themes/default/assets/fonts/icons.woff2', 25 | 26 | // flags 27 | 'themes/default/assets/images/flags.png', 28 | 29 | // release 30 | 'semantic.css', 31 | 'semantic.js' 32 | ], 'client'); 33 | 34 | }); 35 | -------------------------------------------------------------------------------- /public/UI/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "semantic-ui-css", 3 | "version": "2.4.1", 4 | "title": "Semantic UI", 5 | "description": "CSS Only distribution of Semantic UI", 6 | "homepage": "http://www.semantic-ui.com", 7 | "author": "Jack Lukic ", 8 | "license": "MIT", 9 | "main": "semantic.js", 10 | "repository": { 11 | "type": "git", 12 | "url": "git://github.com/Semantic-Org/Semantic-UI-CSS.git" 13 | }, 14 | "bugs": { 15 | "url": "https://github.com/Semantic-Org/Semantic-UI/issues" 16 | }, 17 | "dependencies": { 18 | "jquery": "x.*" 19 | } 20 | } -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/brand-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/brand-icons.eot -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/brand-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/brand-icons.ttf -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/brand-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/brand-icons.woff -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/brand-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/brand-icons.woff2 -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/icons.eot -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/icons.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/icons.otf -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/icons.woff -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/icons.woff2 -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/outline-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/outline-icons.eot -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/outline-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/outline-icons.ttf -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/outline-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/outline-icons.woff -------------------------------------------------------------------------------- /public/UI/themes/default/assets/fonts/outline-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/fonts/outline-icons.woff2 -------------------------------------------------------------------------------- /public/UI/themes/default/assets/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/UI/themes/default/assets/images/flags.png -------------------------------------------------------------------------------- /public/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/images/bg.jpg -------------------------------------------------------------------------------- /public/img/1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/1.jpeg -------------------------------------------------------------------------------- /public/img/10.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/10.jpeg -------------------------------------------------------------------------------- /public/img/11.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/11.jpeg -------------------------------------------------------------------------------- /public/img/4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/4.jpeg -------------------------------------------------------------------------------- /public/img/5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/5.jpeg -------------------------------------------------------------------------------- /public/img/6.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/6.jpeg -------------------------------------------------------------------------------- /public/img/9.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/9.jpeg -------------------------------------------------------------------------------- /public/img/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/bg.png -------------------------------------------------------------------------------- /public/img/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/box.png -------------------------------------------------------------------------------- /public/img/btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/btn.png -------------------------------------------------------------------------------- /public/img/card.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/card.jpg -------------------------------------------------------------------------------- /public/img/card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/card.png -------------------------------------------------------------------------------- /public/img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/close.png -------------------------------------------------------------------------------- /public/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/favicon.png -------------------------------------------------------------------------------- /public/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/loading.gif -------------------------------------------------------------------------------- /public/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/admin360bug/PHP/158f3071be6b15baeb5b99448b46f6819e67d1f9/public/img/logo.png -------------------------------------------------------------------------------- /public/js/index.js: -------------------------------------------------------------------------------- 1 | function get_prompt(){ 2 | Dialog.open(700,150); 3 | } 4 | 5 | function tips_close(){ 6 | Dialog.close(); 7 | } 8 | 9 | 10 | function setFooter(){ 11 | var min_height = window.innerHeight - 175; 12 | var obj = document.getElementById("main"); 13 | obj.style.minHeight= min_height; 14 | } 15 | 16 | var Dialog = { 17 | mask: $('.mask'), 18 | dialog: $('.dialog'), 19 | content: $('.dialog-content'), 20 | open: function (width, height, appendHtml) { 21 | Dialog.mask.fadeIn(500); 22 | Dialog.dialog.css({ width: width, height: (height + 22), marginLeft: -(parseInt(width) / 2) }).addClass('loading').fadeIn(500, function () { 23 | Dialog.dialog.removeClass('loading'); 24 | Dialog.content.append(appendHtml); 25 | }); 26 | }, 27 | close: function () { 28 | Dialog.mask.fadeOut(500); 29 | Dialog.dialog.fadeOut(500, function () { 30 | Dialog.content.empty(); 31 | }); 32 | } 33 | } 34 | 35 | console.log($("#menulist .mask")) 36 | 37 | $(function(){ 38 | 39 | //设置当前所在栏目的菜单按钮按下效果 40 | var path = window.location.pathname; 41 | var pass_id = path.match(/Pass-\d{2}/i); 42 | $("#"+pass_id).addClass('a_is_selected'); 43 | 44 | //给弹出框绑定关闭事件 45 | $('.dialog').find('a.close').bind("click", function () { 46 | Dialog.close(); 47 | }); 48 | 49 | $("#menulist .mask").click(function(e){ 50 | e.preventDefault(); 51 | console.log(1); 52 | }); 53 | 54 | }); 55 | -------------------------------------------------------------------------------- /public/js/isShow.js: -------------------------------------------------------------------------------- 1 | $("#menulist li").click(function(e){ 2 | var id = $(this.children[0]).attr('id'); 3 | console.log(id); 4 | if (typeof(Storage) !== "undefined") { 5 | if(typeof(localStorage.requested) !== "undefined"){ 6 | var arr = JSON.parse(localStorage.requested); 7 | for(var i=0;idiv")[arr[i]-1].className=""; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /public/js/prism-line-numbers.min.js: -------------------------------------------------------------------------------- 1 | !function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e="line-numbers",t=/\n(?!$)/g,n=function(e){var n=r(e),s=n["white-space"];if("pre-wrap"===s||"pre-line"===s){var l=e.querySelector("code"),i=e.querySelector(".line-numbers-rows"),a=e.querySelector(".line-numbers-sizer"),o=l.textContent.split(t);a||(a=document.createElement("span"),a.className="line-numbers-sizer",l.appendChild(a)),a.style.display="block",o.forEach(function(e,t){a.textContent=e||"\n";var n=a.getBoundingClientRect().height;i.children[t].style.height=n+"px"}),a.textContent="",a.style.display="none"}},r=function(e){return e?window.getComputedStyle?getComputedStyle(e):e.currentStyle||null:null};window.addEventListener("resize",function(){Array.prototype.forEach.call(document.querySelectorAll("pre."+e),n)}),Prism.hooks.add("complete",function(e){if(e.code){var r=e.element.parentNode,s=/\s*\bline-numbers\b\s*/;if(r&&/pre/i.test(r.nodeName)&&(s.test(r.className)||s.test(e.element.className))&&!e.element.querySelector(".line-numbers-rows")){s.test(e.element.className)&&(e.element.className=e.element.className.replace(s," ")),s.test(r.className)||(r.className+=" line-numbers");var l,i=e.code.match(t),a=i?i.length+1:1,o=new Array(a+1);o=o.join(""),l=document.createElement("span"),l.setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=o,r.hasAttribute("data-start")&&(r.style.counterReset="linenumber "+(parseInt(r.getAttribute("data-start"),10)-1)),e.element.appendChild(l),n(r),Prism.hooks.run("line-numbers",e)}}}),Prism.hooks.add("line-numbers",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}),Prism.plugins.lineNumbers={getLine:function(t,n){if("PRE"===t.tagName&&t.classList.contains(e)){var r=t.querySelector(".line-numbers-rows"),s=parseInt(t.getAttribute("data-start"),10)||1,l=s+(r.children.length-1);s>n&&(n=s),n>l&&(n=l);var i=n-s;return r.children[i]}}}}}(); -------------------------------------------------------------------------------- /public/js/prism-php.min.js: -------------------------------------------------------------------------------- 1 | !function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","keyword",{delimiter:{pattern:/\?>|<\?(?:php|=)?/i,alias:"important"},variable:/\$+(?:\w+\b|(?={))/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:null}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:null}}}),delete e.languages.php.string;var n={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:{rest:e.languages.php}};e.languages.php["heredoc-string"].inside.interpolation=n,e.languages.php["double-quoted-string"].inside.interpolation=n,e.hooks.add("before-tokenize",function(n){if(/(?:<\?php|<\?)/gi.test(n.code)){var i=/(?:<\?php|<\?)[\s\S]*?(?:\?>|$)/gi;e.languages["markup-templating"].buildPlaceholders(n,"php",i)}}),e.hooks.add("after-tokenize",function(n){e.languages["markup-templating"].tokenizePlaceholders(n,"php")})}(Prism); -------------------------------------------------------------------------------- /public/js/scrollspy.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("scroll", function() { 2 | var height = window.innerHeight; 3 | var targets = document.querySelectorAll("[data-target]"); 4 | for(var i = 0, length = targets.length; i < length; i++) { 5 | var target = targets[i]; 6 | var position = target.getBoundingClientRect() 7 | if(position.top >= 0 && position.top <= 0.5 * height) { 8 | var indicators = document.querySelectorAll("nav ul li a"); 9 | for(var j = 0, indicatorsLength = indicators.length; j < indicatorsLength; j++) { 10 | var indicator = indicators[j]; 11 | if(indicator.getAttribute("href") == target.getAttribute("data-target")) { 12 | indicator.className = "active"; 13 | } else { 14 | indicator.className = ""; 15 | } 16 | } 17 | } 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /public/js/scrollspy.min.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("scroll",function(){var l=window.innerHeight;var f=document.querySelectorAll("[data-target]");for(var d=0,a=f.length;d=0&&e.top<=0.5*l){var k=document.querySelectorAll("nav ul li a");for(var c=0,b=k.length;c