public static final function Raise500Error($y_msg) { //-- if (!headers_sent()) { http_response_code(500); } else { Smart::log_warning('Headers Already Sent before 500 ...'); } //end if else die(SmartComponents::http_message_500_internalerror(Smart::escape_html((string) $y_msg))); //-- }
public static function main_screen($tab, $frm, $testformdata) { //-- global $configs; //-- //-- if (!defined('SMART_FRAMEWORK_TESTUNIT_BASE_URL')) { http_response_code(500); die(SmartComponents::http_message_500_internalerror('ERROR: TEST UNIT BASE URL has not been defined ...')); } //end if //-- //-- if (Smart::array_size($testformdata) > 0) { // because is modal we have to close it in order to refresh the parent return '<table><tr><td><h1>Form Sent (Test) !</h1><hr><pre>' . Smart::escape_html(print_r($testformdata, 1)) . '</pre></td></tr></table><script>SmartJS_BrowserUtils.RefreshParent();</script><br><br><input id="myCloseButton" type="button" value="[Close Me]" onClick="SmartJS_BrowserUtils.CloseModalPopUp(); return false;"><br><br><b>This page will auto-close in 9 seconds [Counting: <span id="mycounter">9</span>]</b><script>jQuery("#myCloseButton").button(); SmartJS_BrowserUtils.CountDown(9, \'mycounter\', \'SmartJS_BrowserUtils.CloseDelayedModalPopUp(500);\');</script><br><br><b><i>After closing this window, parent will refresh ...</i></b>'; } //end if //-- //-- normal form with modal/popup $basic_form_start = '<form id="form_for_test" action="' . SMART_FRAMEWORK_TESTUNIT_BASE_URL . 'testunit.main&tab=1' . '&' . SMART_FRAMEWORK_URL_PARAM_MODALPOPUP . '=' . SMART_FRAMEWORK_URL_VALUE_ENABLED . '" method="post" target="_blank"><input type="hidden" name="testformdata[test]" value="Testing ..."><input type="hidden" name="testformdata[another-test]" value="Testing more ...">'; $basic_form_end = '</form>'; //-- $basic_form_send_modal = '<input class="ux-button ux-button-primary" style="min-width:325px;" type="submit" value="Submit Form (with Confirmation / Modal)" OnClick="' . SmartComponents::js_draw_html_confirm_form_submit('<div align="left"><h3><b>Are you sure you want to submit this form [MODAL] ?</b></h3></div>', 'my_form') . '">'; $basic_form_send_popup = '<input class="ux-button ux-button-secondary" style="min-width:325px;" type="submit" value="Submit Form (with Confirmation / PopUp)" OnClick="' . SmartComponents::js_draw_html_confirm_form_submit('<div align="left"><h3><b>Are you sure you want to submit this form [POPUP] ?</b></h3></div>', 'my_form', '780', '420', '1') . '">'; //-- //-- AJAX POST FORM $btnop = '<button class="ux-button ux-button-large ux-button-highlight" onClick="' . SmartComponents::post_form_by_ajax('test_form_ajax', SMART_FRAMEWORK_TESTUNIT_BASE_URL . 'testunit.post-form-by-ajax&tab=2', '<h2>Are you sure you want to submit this form by Ajax !?</h2>') . ' return false;">Submit this Test Form by AJAX <span class="fa fa-send"></span></button>'; //-- END //-- lists with one element $one_single_select = SmartComponents::html_single_select_list('test-unit-s-list-one', '', 'form', array('one' => 'One'), 'frm[one_single]', '150', '', 'no', 'no', '#JS-UI#'); // returns HTML Code $one_single_with_blank_select = SmartComponents::html_multi_select_list('test-unit-lst-m-1', '', 'form', array('one' => 'One'), 'frm[one_multi][]', 'list', 'no', '200', '', '#JS-UI-FILTER#'); // returns HTML Code //-- $test_normal_list_s = SmartComponents::html_single_select_list('test_normal_s', '', 'form', [1 => 'Val 1', 2 => 'Val 2', 3 => 'Val 3']); $test_normal_list_m = SmartComponents::html_multi_select_list('test_normal_m', '', 'form', [1 => 'Val 1', 2 => 'Val 2', 3 => 'Val 3'], '', 'list', 'no', '200/75', '', 'height:65px;'); //-- //-- misc purpose data array $array_of_values = array(); $array_of_values[] = 'a&"/><i>Italic</i></body>'; $array_of_values[] = 'a&"/><i>Italic</i></body>'; $array_of_values[] = '#OPTGROUP#'; $array_of_values[] = 'Labels'; for ($i = 1; $i <= 500; $i++) { $array_of_values[] = 'id' . $i; $array_of_values[] = 'Label ' . $i; } //end for //-- single-select $selected_value = 'id2'; $elem_single_select = SmartComponents::html_single_select_list('test-unit-s-list-two', $selected_value, 'form', $array_of_values, 'frm[list_single]', '150', 'onChange="alert(\'' . Smart::escape_js('Getting value from the "SingleList": ') . '\' + $(\'#test-unit-s-list-two\').val());"', 'no', 'yes', '#JS-UI-FILTER#'); // returns HTML Code //-- // draw a multi-select (classic) $selected_values = '<id1>,<id3>'; $elem_multi_select = SmartComponents::html_multi_select_list('test-unit-m-list-2', $selected_values, 'form', $array_of_values, 'frm[list_multi_one][]', 'list', 'no', '250', 'onBlur="alert(\'' . Smart::escape_js('Getting value from the:' . "\n" . ' "MultiList": ') . '\' + $(\'#test-unit-m-list-2\').val());"', '#JS-UI-FILTER#'); // returns HTML Code //-- // multi-select (checkboxes) $array_of_values = array('id1' => 'Label 1', 'id2' => 'Label 2', 'id3' => 'Label 3'); $selected_values = array('id2', 'id3'); $elem_multi_boxes = SmartComponents::html_multi_select_list('test-unit-m-list-3', $selected_values, 'form', $array_of_values, 'frm[list_multi_two][]', 'checkboxes'); // returns HTML Code //-- //-- if (SMART_FRAMEWORK_ADMIN_AREA === true) { $info_adm = '[ Admin Area ]'; } else { $info_adm = '[ Index ]'; } //end if else //-- //-- $demo_mod_js_components = '<h1>JS Components are not Installed ...</h1>'; if (SmartAppInfo::TestIfModuleExists('mod-js-components')) { $demo_mod_js_components = SmartFileSystem::staticread('modules/mod-js-components/views/testunit/tab-js-components.inc.htm'); } //end if //-- //-- return SmartMarkersTemplating::render_file_template('lib/core/templates/testunit/test-unit.htm', array('@SUB-TEMPLATES@' => ['test-unit-tab-tests.htm' => 'lib/core/templates/testunit/', 'test-unit-tab-interractions.htm' => 'lib/core/templates/testunit', 'test-unit-tab-ui.htm' => '@', '%test-unit-tab-misc%' => '@/test-unit-tab-misc.htm'], 'TESTUNIT_BASE_URL' => SMART_FRAMEWORK_TESTUNIT_BASE_URL, 'NO-CACHE-TIME' => time(), 'CURRENT-DATE-TIME' => date('Y-m-d H:i:s O'), 'TEST-JS_SCRIPTS.Init-Tabs' => SmartComponents::js_ajx_tabs_init('tabs_draw', Smart::format_number_int($tab, '+')), 'Test-Buttons.AJAX-POST' => $btnop, 'TEST-VAR' => '<div style="background-color: #ECECEC; padding: 10px;"><b>Smart.Framework</b> :: PHP/Javascript web framework :: ' . $info_adm . ' // Test Suite</div>', 'TEST-ELEMENTS.DIALOG' => '<a class="ux-button" style="min-width:325px;" href="#" onClick="' . SmartComponents::js_draw_html_confirm_dialog('<h1>Do you like this framework ?</h1>', 'alert(\'Well ... then \\\' " <tag> !\');') . ' return false;">Test JS-UI Dialog</a>', 'TEST-ELEMENTS.ALERT' => '<a class="ux-button" style="min-width:325px;" href="#" onClick="' . SmartComponents::js_draw_html_alert('<h2>You can press now OK !</h2>', 'alert(\'Good ... \\\' " <tag> !\');') . ' return false;">Test JS-UI Alert</a>', 'TEST-ELEMENTS.SEND-CONFIRM-MODAL' => $basic_form_start . $basic_form_send_modal . $basic_form_end, 'TEST-ELEMENTS.SEND-CONFIRM-POPUP' => $basic_form_start . $basic_form_send_popup . $basic_form_end, 'TEST-ELEMENTS-WND-INTERRACTIONS-MODAL' => self::bttn_open_modal(true, 'test_interractions_modal_start'), 'TEST-ELEMENTS-WND-INTERRACTIONS-POPUP' => self::bttn_open_popup(true, 'test_interractions_popup_start'), 'TEST-ELEMENTS.SINGLE-SELECT' => 'SingleSelect DropDown List without Blank: ' . $one_single_select, 'TEST-ELEMENTS.SINGLE-BLANK-SELECT' => 'SingleSelect DropDown List (from Multi): ' . $one_single_with_blank_select, 'TEST-ELEMENTS.SINGLE-SEARCH-SELECT' => 'SingleSelect DropDown List with Search: ' . $elem_single_select, 'TEST-ELEMENTS.MULTI-SELECT' => 'MultiSelect DropDown List: ' . $elem_multi_select, 'TEST-ELEMENTS.MULTIBOX-SELECT' => 'MultiSelect CheckBoxes:<br>' . $elem_multi_boxes, 'TEST-ELEMENTS.NORMAL-LIST-S' => $test_normal_list_s, 'TEST-ELEMENTS.NORMAL-LIST-M' => $test_normal_list_m, 'TEST-ELEMENTS.CALENDAR' => 'Calendar Selector: ' . SmartComponents::js_draw_date_field('frm_calendar_id', 'frm[date]', Smart::escape_html($frm['date']), 'Select Date', "'0d'", "'1y'", '', 'alert(\'You selected the date: \' + date);'), 'TEST-ELEMENTS.TIMEPICKER' => 'TimePicker Selector: ' . SmartComponents::js_draw_time_field('frm_timepicker_id', 'frm[time]', Smart::escape_html($frm['time']), 'Select Time', '9', '19', '0', '55', '5', '3', '', 'alert(\'You selected the time: \' + time);'), 'TEST-ELEMENTS.AUTOCOMPLETE-SINGLE' => 'AutoComplete: ' . '<input id="auto-complete-fld" type="text" name="frm[autocomplete]" style="width:75px;">' . SmartComponents::js_draw_ui_autocomplete_single('auto-complete-fld', SMART_FRAMEWORK_TESTUNIT_BASE_URL . 'testunit.autocomplete', 'src', 1, 'alert(\'You selected: \' + value);') . ' ' . '<input id="auto-complete-mfld" type="text" name="frm[mautocomplete]" style="width:125px;">' . SmartComponents::js_draw_ui_autocomplete_multi('auto-complete-mfld', SMART_FRAMEWORK_TESTUNIT_BASE_URL . 'testunit.autocomplete', 'src', 1, 'alert(\'You selected: \' + value);'), 'TEST-elements.Captcha' => SmartCaptchaFormCheck::captcha_form(SMART_FRAMEWORK_TESTUNIT_BASE_URL . 'testunit.captcha', self::captcha_form_name()), 'test-elements.limited-area' => 'Limited TextArea: ' . SmartComponents::js_draw_limited_text_area('', 'frm[text_area_1]', '', 300, '400px', '100px'), 'POWERED-INFO' => SmartComponents::draw_powered_info('no'), 'STR-NUM' => '1abc', 'NUM-NUM' => '0.123456789', 'MARKER' => '1234567890.abcdefghijklmniopqrstuvwxyz"', 'IFTEST' => Smart::random_number(1, 2), 'IF2TEST' => Smart::random_number(0, 9), 'LOOPTEST-VAR1' => [['d1' => 'Column 1.x (HTML Escape)', 'd2' => 'Column 2.x (JS Escape)', 'd3' => 'Column 3.x (URL Escape)']], 'LOOPTEST-VAR2' => [['c1' => '<Column 1.1>', 'c2' => 'Column 1.2' . "\n", 'c3' => 'Column 1.3' . "\t"], ['c1' => '<Column 2.1>', 'c2' => 'Column 2.2' . "\n", 'c3' => 'Column 2.3' . "\t"], ['c1' => '<Column 3.1>', 'c2' => 'Column 3.2' . "\n", 'c3' => 'Column 3.3' . "\t"], ['c1' => Smart::random_number(0, 1), 'c2' => 'a', 'c3' => 'A']], 'MOD-JS-COMPONENTS' => $demo_mod_js_components), 'yes'); //-- }
public static function Authenticate($area) { //-- global $configs; //-- if (self::$authCompleted !== false) { http_response_code(500); die(SmartComponents::http_message_500_internalerror('App Boostrap Auth already loaded ...')); } //end if self::$authCompleted = true; //-- switch ((string) $area) { case 'index': require 'modules/app/app-auth-index.inc.php'; break; case 'admin': require 'modules/app/app-auth-admin.inc.php'; break; default: $msg = 'Invalid Authentication Realm: ' . $area; Smart::raise_error('App Bootstrap / Authenticate: ' . $msg, 'App Bootstrap / Authenticate: ' . $msg); die('Invalid Auth Realm'); // just in case } //end switch //-- }