/** * Tests Security::htmlentities() * * @test */ public function test_htmlentities_double_encode() { $output = Security::htmlentities('"H&M"'); $output = Security::htmlentities($output); $expected = '"H&M"'; $this->assertEquals($expected, $output); }
/** * Renders the field's form element for editing in the admin site */ public static function displayForm($value, &$settings, $model) { $class = get_called_class(); $settings = static::settings($settings); $include_label = isset($settings['label']) ? $settings['label'] : true; $required = isset($settings['required']) ? $settings['required'] : false; $errors = $model->getErrorsForField($settings['mapping']['fieldName']); $has_errors = count($errors) > 0; $input_attributes = isset($settings['input_attributes']) ? $settings['input_attributes'] : array('class' => 'input-xxlarge'); if (!isset($input_attributes['id'])) { $input_attributes['id'] = 'form_' . $settings['mapping']['fieldName']; } $attributes = array('class' => 'controls control-group' . ($has_errors ? ' error' : '') . ' field-type-' . $class::type($settings)); $label_text = $settings['title'] . ($required ? ' *' : ''); if (empty($value)) { $value = substr(\Security::generate_token(), 0, 16); } // Description? $description = isset($settings['description']) ? '<span class="help-block">' . $settings['description'] . '</span>' : ''; // Build the input $input = '<input type="text" name="' . $settings['mapping']['fieldName'] . '" ' . array_to_attr($input_attributes) . ' value="' . \Security::htmlentities(strval($value), ENT_QUOTES) . '" />'; // Build the label $label = !$include_label ? '' : html_tag('label', array('class' => 'item-label', 'for' => $settings['mapping']['fieldName']), $label_text . ($has_errors ? ' - ' . $errors[0] : '')); // Don't wrap the input if wrap is set to false if (isset($settings['wrap']) && $settings['wrap'] === false) { return $label . $input; } return html_tag('div', $attributes, $label . $description . $input); }
/** inheritdoc */ public static function displayForm($value, &$settings, $model) { $class = get_called_class(); $settings = static::settings($settings); $include_label = isset($settings['label']) ? $settings['label'] : true; $required = isset($settings['required']) ? $settings['required'] : false; $errors = $model->getErrorsForField($settings['mapping']['fieldName']); $has_errors = count($errors) > 0; $input_attributes = isset($settings['input_attributes']) ? $settings['input_attributes'] : array('class' => 'input-xxlarge form-control'); if (!isset($input_attributes['id'])) { $input_attributes['id'] = 'form_' . $settings['mapping']['fieldName']; } $attributes = array('class' => 'controls control-group' . ($has_errors ? ' error' : '') . ' field-type-' . $class::type($settings)); $label_text = $settings['title'] . ($required ? ' *' : ''); // Build the input $input = '<input type="text" name="' . $settings['mapping']['fieldName'] . '" ' . array_to_attr($input_attributes) . ' value="' . \Security::htmlentities(strval($value), ENT_QUOTES) . '" />'; // Build the label $label = !$include_label ? '' : \Form::label($label_text . ($has_errors ? ' - ' . $errors[0] : ''), $settings['mapping']['fieldName'], array('class' => 'item-label')); // Wrap it in an input group $input = html_tag('div', array('class' => 'input-append'), $input . html_tag('span', array('class' => 'add-on'), ' ')); // Don't wrap the input if wrap is set to false if (isset($settings['wrap']) && $settings['wrap'] === false) { return $label . $input; } return html_tag('div', $attributes, $label . $input); }
/** * Renders the field's form element for editing in the admin site * @see \Admin::getFieldSettings() * @param mixed $value The current value of the property, if there is one * @param array $settings Field settings, created through \Admin::getFieldSettings() * @param object $model The model, if it is being edited. * @return string The form control */ public static function displayForm($value, &$settings, $model) { $class = get_called_class(); $settings = static::settings($settings); $include_label = isset($settings['label']) ? $settings['label'] : true; $required = isset($settings['required']) ? $settings['required'] : false; $errors = $model->getErrorsForField($settings['mapping']['fieldName']); $has_errors = count($errors) > 0; $input_attributes = isset($settings['input_attributes']) ? $settings['input_attributes'] : array('class' => 'input-xxlarge'); if (!isset($input_attributes['id'])) { $input_attributes['id'] = 'form_' . $settings['mapping']['fieldName']; } $attributes = array('class' => 'controls control-group' . ($has_errors ? ' error' : '') . ' field-type-' . $class::type($settings)); $label_text = $settings['title'] . ($required ? ' *' : ''); // Translation? if (\CMF::$lang_enabled && !\CMF::langIsDefault() && isset($settings['mapping']['columnName']) && $model->isTranslatable($settings['mapping']['columnName'])) { // If there is no translation if (!$model->hasTranslation($settings['mapping']['columnName'])) { $attributes['class'] .= ' no-translation'; $input_attributes['class'] .= ' no-translation'; $label_text = '<img class="lang-flag" src="' . \Uri::create('/admin/assets/img/lang/' . \CMF::defaultLang() . '.png') . '" /> ' . $label_text; } else { $label_text = '<img class="lang-flag" src="' . \Uri::create('/admin/assets/img/lang/' . \CMF::lang() . '.png') . '" /> ' . $label_text; } } // Description? $description = isset($settings['description']) ? '<span class="help-block">' . $settings['description'] . '</span>' : ''; // Build the input $input = '<input type="text" name="' . $settings['mapping']['fieldName'] . '" ' . array_to_attr($input_attributes) . ' value="' . \Security::htmlentities(strval($value), ENT_QUOTES) . '" />'; // Build the label $label = !$include_label ? '' : html_tag('label', array('class' => 'item-label', 'for' => $settings['mapping']['fieldName']), $label_text . ($has_errors ? ' - ' . $errors[0] : '')); // Prepend or append things... if (isset($settings['prepend'])) { $input = html_tag('div', array('class' => 'input-prepend'), html_tag('span', array('class' => 'add-on'), $settings['prepend']) . $input); } if (isset($settings['append'])) { $input = html_tag('div', array('class' => 'input-append'), $input . html_tag('span', array('class' => 'add-on'), $settings['append'])); } // Don't wrap the input if wrap is set to false if (isset($settings['wrap']) && $settings['wrap'] === false) { return $label . $input; } // Add the 'keep updated' control if the field has a template if (isset($settings['template']) && !empty($settings['template'])) { $attributes['class'] .= ' field-with-controls field-with-template'; $auto_update_setting = 'settings[' . $settings['mapping']['fieldName'] . '][auto_update]'; $auto_update_content = \Form::hidden($auto_update_setting, '0', array()) . html_tag('label', array('class' => 'checkbox auto-update-label'), \Form::checkbox($auto_update_setting, '1', \Arr::get($settings, 'auto_update', true), array('class' => 'auto-update')) . strtolower(\Lang::get('admin.common.auto_update'))); $auto_update = html_tag('div', array('class' => 'controls-top'), $auto_update_content); $label .= $auto_update; return array('content' => html_tag('div', $attributes, $label . $description . $input) . '<div class="clear"><!-- --></div>', 'widget' => false, 'assets' => array('js' => array('/admin/assets/js/twig.min.js', '/admin/assets/js/fields/template.js')), 'js_data' => $settings); } return html_tag('div', $attributes, $label . $description . $input); }
function strim($string, $width = 0, $trimmarker = null, $is_html = true, $is_remove_line_feed = false) { if (!$width) { return $string; } if (is_null($trimmarker)) { $trimmarker = '...'; } if ($is_remove_line_feed) { $string = str_replace(array("\r", "\n"), '', $string); } $original_width = mb_strlen($string); if ($is_html) { $string = Site_Util::html_entity_decode($string); } $string = mb_strimwidth($string, 0, $width, $trimmarker); if ($is_html) { $string = Security::htmlentities($string); } return $string; }
public function action_edit($account_id = '') { // set redirect url $redirect = $this->getAndSetSubmitRedirection(); // check permission if (\Model_AccountLevelPermission::checkAdminPermission('account_perm', 'account_edit_perm') == false) { \Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('admin_permission_denied', array('page' => \Uri::string())))); \Response::redirect($redirect); } // if editing guest. if ($account_id == '0') { \Response::redirect($redirect); } // if no account id, get current user's' account id if ($account_id == null) { $cookie = \Model_Accounts::forge()->getAccountCookie('admin'); if (isset($cookie['account_id'])) { $account_id = $cookie['account_id']; } else { unset($cookie); \Response::redirect($redirect); } unset($cookie); } // load language \Lang::load('account'); // load config from db. $cfg_values = array('allow_avatar', 'avatar_size', 'avatar_allowed_types', 'site_timezone'); $config = \Model_Config::getvalues($cfg_values); $output['config'] = $config; // set config data to display in view file. $output['allow_avatar'] = $config['allow_avatar']['value']; $output['avatar_size'] = $config['avatar_size']['value']; $output['avatar_allowed_types'] = $config['avatar_allowed_types']['value']; unset($cfg_values); // read flash message for display errors. $form_status = \Session::get_flash('form_status'); if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) { $output['form_status'] = $form_status['form_status']; $output['form_status_message'] = $form_status['form_status_message']; } unset($form_status); // get timezone list to display. \Config::load('timezone', 'timezone'); $output['timezone_list'] = \Config::get('timezone.timezone', array()); $output['default_timezone'] = $config['site_timezone']['value']; // get levels to select $output['account_levels'] = \Model_AccountLevelGroup::listLevels(array('no_guest' => true)); // get selected user data. ------------------------------------------------------------------------------------- $row = \Model_Accounts::find($account_id); $output['account_id'] = $account_id; if ($row == null) { // not found selected user. unset($config, $output, $row); \Response::redirect($redirect); } // loop set form field. foreach ($row as $key => $value) { $output[$key] = $value; } foreach ($row->account_level as $lvl) { $output['level_group_id'][] = $lvl->level_group_id; } // check if editing account that has higher level if (\Model_Accounts::forge()->canIAddEditAccount($output['level_group_id']) == false) { \Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('account_you_cannot_edit_account_that_contain_role_higher_than_yours'))); \Response::redirect($redirect); } // if form submitted -------------------------------------------------------------------------------------------- if (\Input::method() == 'POST') { // store data for accounts table $data['account_id'] = $account_id; $data['account_username'] = $row->account_username; //trim(\Input::post('account_username'));//no, do not edit username. $data['account_old_email'] = $row->account_email; $data['account_email'] = \Security::strip_tags(trim(\Input::post('account_email'))); $data['account_password'] = trim(\Input::post('account_password')); $data['account_new_password'] = trim(\Input::post('account_new_password')); $data['account_display_name'] = \Security::htmlentities(\Input::post('account_display_name')); $data['account_firstname'] = \Security::htmlentities(trim(\Input::post('account_firstname', null))); if ($data['account_firstname'] == null) { $data['account_firstname'] = null; } $data['account_middlename'] = \Security::htmlentities(trim(\Input::post('account_middlename', null))); if ($data['account_middlename'] == null) { $data['account_middlename'] = null; } $data['account_lastname'] = \Security::htmlentities(trim(\Input::post('account_lastname', null))); if ($data['account_lastname'] == null) { $data['account_lastname'] = null; } $data['account_birthdate'] = \Security::strip_tags(trim(\Input::post('account_birthdate', null))); if ($data['account_birthdate'] == null) { $data['account_birthdate'] = null; } $data['account_signature'] = \Security::htmlentities(trim(\Input::post('account_signature', null))); if ($data['account_signature'] == null) { $data['account_signature'] = null; } $data['account_timezone'] = \Security::strip_tags(trim(\Input::post('account_timezone'))); $data['account_language'] = \Security::strip_tags(trim(\Input::post('account_language', null))); if ($data['account_language'] == null) { $data['account_language'] = null; } $data['account_status'] = (int) \Security::strip_tags(trim(\Input::post('account_status'))); $data['account_status_text'] = \Security::htmlentities(trim(\Input::post('account_status_text'))); if ($data['account_status'] == '1') { $data['account_status_text'] = null; } // store data for account_fields $data_field = array(); if (is_array(\Input::post('account_field'))) { foreach (\Input::post('account_field') as $field_name => $field_value) { if (is_string($field_name)) { if (is_array($field_value)) { $field_value = json_encode($field_value); } $data_field[$field_name] = $field_value; } } } unset($field_name, $field_value); // store data for account_level table $data_level['level_group_id'] = \Input::post('level_group_id'); // validate form. $validate = \Validation::forge(); $validate->add_callable(new \Extension\FsValidate()); $validate->add('account_username', \Lang::get('account_username'), array(), array('noSpaceBetweenText')); $validate->add('account_email', \Lang::get('account_email'), array(), array('required', 'valid_email')); $validate->add('account_display_name', \Lang::get('account_display_name'), array(), array('required')); $validate->add('account_birthdate', \Lang::get('account_birthdate'))->add_rule('valid_date', 'Y-m-d'); $validate->add('account_timezone', \Lang::get('account_timezone'), array(), array('required')); $validate->add('account_status', \Lang::get('account_status'), array(), array('required')); $validate->add('level_group_id', \Lang::get('account_role'), array(), array('required')); if (!\Extension\NoCsrf::check()) { // validate token failed $output['form_status'] = 'error'; $output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token'); } elseif (!$validate->run()) { // validate failed $output['form_status'] = 'error'; $output['form_status_message'] = $validate->show_errors(); } else { // save $result = \Model_Accounts::editAccount($data, $data_field, $data_level); if ($result === true) { if (\Session::get_flash('form_status', null, false) == null) { \Session::set_flash('form_status', array('form_status' => 'success', 'form_status_message' => \Lang::get('admin_saved'))); } \Response::redirect($redirect); } else { $output['form_status'] = 'error'; $output['form_status_message'] = $result; } } // re-populate form $output['account_username'] = trim(\Input::post('account_username')); $output['account_email'] = trim(\Input::post('account_email')); $output['account_display_name'] = trim(\Input::post('account_display_name')); $output['account_firstname'] = trim(\Input::post('account_firstname')); $output['account_middlename'] = trim(\Input::post('account_middlename')); $output['account_lastname'] = trim(\Input::post('account_lastname')); $output['account_birthdate'] = trim(\Input::post('account_birthdate')); $output['account_signature'] = trim(\Input::post('account_signature')); $output['account_timezone'] = trim(\Input::post('account_timezone')); $output['account_language'] = trim(\Input::post('account_language')); $output['account_status'] = trim(\Input::post('account_status')); $output['account_status_text'] = trim(\Input::post('account_status_text')); $output['level_group_id'] = \Input::post('level_group_id'); // re-populate form for account fields if (is_array(\Input::post('account_field'))) { foreach (\Input::post('account_field') as $field_name => $field_value) { if (is_string($field_name)) { $output['account_field'][$field_name] = $field_value; } } } unset($field_name, $field_value); } // <head> output ---------------------------------------------------------------------------------------------- $output['page_title'] = $this->generateTitle(\Lang::get('account_accounts')); $theme = \Theme::instance(); $theme->asset->css('datepicker.css', array(), 'fuelstart'); unset($theme); // <head> output ---------------------------------------------------------------------------------------------- // breadcrumb ------------------------------------------------------------------------------------------------- $page_breadcrumb = []; $page_breadcrumb[0] = ['name' => \Lang::get('admin_admin_home'), 'url' => \Uri::create('admin')]; $page_breadcrumb[1] = ['name' => \Lang::get('account_accounts'), 'url' => \Uri::create('admin/account')]; $page_breadcrumb[2] = ['name' => \Lang::get('account_edit'), 'url' => \Uri::main()]; $output['page_breadcrumb'] = $page_breadcrumb; unset($page_breadcrumb); // breadcrumb ------------------------------------------------------------------------------------------------- return $this->generatePage('admin/templates/account/form_v', $output, false); }
echo Input::get("id", ""); ?> " /> <ul class="forms"> <li><h4>Name</h4> <div> <input placeholder="First name" name="firstname" type="text" required pattern=".{2,20}" title="must be less than 20 chars" value="<?php echo Security::htmlentities(Input::post("firstname", $user->firstname)); ?> "> <input placeholder="Middle name" name="middlename" type="text" pattern=".{2,20}" title="must be less than 20 chars" value="<?php echo Security::htmlentities(Input::post("middlename", $user->middlename)); ?> "> <input placeholder="Last name" name="lastname" type="text" required pattern=".{2,20}" title="must be less than 20 chars" value="<?php echo Security::htmlentities(Input::post("lastname", $user->lastname)); ?> "> </div> </li> <li><h4>Email address</h4> <div> <?php if (isset($error)) { ?> <p class="error"><?php echo $error; ?> </p> <?php }
public function action_edit($level_group_id = '') { // set redirect url $redirect = $this->getAndSetSubmitRedirection(); // check permission if (\Model_AccountLevelPermission::checkAdminPermission('accountlv_perm', 'accountlv_edit_perm') == false) { \Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('admin_permission_denied', array('page' => \Uri::string())))); \Response::redirect($redirect); } // force $level_group_id to be integer $level_group_id = (int) $level_group_id; // load language \Lang::load('account'); // read flash message for display errors. $form_status = \Session::get_flash('form_status'); if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) { $output['form_status'] = $form_status['form_status']; $output['form_status_message'] = $form_status['form_status_message']; } unset($form_status); // get data to edit $alg = \Model_AccountLevelGroup::find($level_group_id); // if not found if ($alg == null) { \Response::redirect($redirect); } // set output data for form foreach ($alg as $key => $value) { $output[$key] = $value; } unset($alg, $key, $value); // if form submitted if (\Input::method() == 'POST') { // store data for save in db $data['level_group_id'] = $level_group_id; $data['level_name'] = \Security::htmlentities(trim(\Input::post('level_name'))); $data['level_description'] = \Security::htmlentities(trim(\Input::post('level_description'))); // validate form. $validate = \Validation::forge(); $validate->add('level_name', \Lang::get('accountlv_role'), array(), array('required')); if (!\Extension\NoCsrf::check()) { // validate token failed $output['form_status'] = 'error'; $output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token'); } elseif (!$validate->run()) { // validate failed $output['form_status'] = 'error'; $output['form_status_message'] = $validate->show_errors(); } else { // save $result = \Model_AccountLevelGroup::editLevel($data); if ($result === true) { if (\Session::get_flash('form_status', null, false) == null) { \Session::set_flash('form_status', array('form_status' => 'success', 'form_status_message' => \Lang::get('admin_saved'))); } \Response::redirect($redirect); } else { $output['form_status'] = 'error'; $output['form_status_message'] = $result; } } // re-populate form $output['level_name'] = $data['level_name']; $output['level_description'] = $data['level_description']; } // <head> output ---------------------------------------------------------------------------------------------- $output['page_title'] = $this->generateTitle(\Lang::get('accountlv_role')); // <head> output ---------------------------------------------------------------------------------------------- // breadcrumb ------------------------------------------------------------------------------------------------- $page_breadcrumb = []; $page_breadcrumb[0] = ['name' => \Lang::get('admin_admin_home'), 'url' => \Uri::create('admin')]; $page_breadcrumb[1] = ['name' => \Lang::get('accountlv_role'), 'url' => \Uri::create('admin/account-level')]; $page_breadcrumb[2] = ['name' => \Lang::get('accountlv_edit_role'), 'url' => \Uri::main()]; $output['page_breadcrumb'] = $page_breadcrumb; unset($page_breadcrumb); // breadcrumb ------------------------------------------------------------------------------------------------- return $this->generatePage('admin/templates/accountlevel/form_v', $output, false); }
/** * send reset password email * * @param array $data * @return mixed */ public static function sendResetPasswordEmail(array $data = array()) { if (!isset($data['account_email'])) { return false; } $query = static::query()->where('account_email', $data['account_email']); if ($query->count() > 0) { $row = $query->get_one(); unset($query); if ($row->account_status == '0') { return \Lang::get('account_was_disabled') . ' : ' . $row->account_status_text; } $cfg_member_confirm_wait_time = \Model_Config::getval('member_confirm_wait_time') * 60; // check confirm wait time. you need to wait until 'wait time' passed to send reset password request again. if ($row->account_confirm_code != null && time() - $row->account_confirm_code_since <= $cfg_member_confirm_wait_time) { return \Lang::get('account_reset_password_please_wait_until', array('wait_til_time' => date('d F Y H:i:s', $row->account_confirm_code_since + \Model_Config::getval('member_confirm_wait_time') * 60))); } $account_new_password = \Str::random('alnum', 10); $account_confirm_code = \Str::random('alnum', 5); $account_confirm_code_since = time(); $email_content = \Extension\EmailTemplate::readTemplate('reset_password1.html'); $email_content = str_replace("%username%", \Security::htmlentities($row->account_username), $email_content); $email_content = str_replace("%link_confirm%", \Uri::create('account/resetpw/' . $row->account_id . '/' . $account_confirm_code . '/reset'), $email_content); $email_content = str_replace("%link_cancel%", \Uri::create('account/resetpw/' . $row->account_id . '/' . $account_confirm_code . '/cancel'), $email_content); $email_content = str_replace("%confirm_until%", date('d F Y H:i:s', time() + $cfg_member_confirm_wait_time), $email_content); \Package::load('email'); $config = \Extension\Email::getConfig(); $email = \Email::forge($config); $email->from(\Model_Config::getval('mail_sender_email')); $email->to($data['account_email']); $email->subject(\Lang::get('account_email_reset_password_request')); $email->html_body($email_content); $email->alt_body(str_replace("\t", '', strip_tags($email_content))); if ($email->send() == false) { unset($account_confirm_code, $account_confirm_code_since, $account_new_password, $cfg_member_confirm_wait_time, $config, $email, $email_content, $query, $row); return \Lang::get('account_email_could_not_send'); } unset($cfg_member_confirm_wait_time, $config, $email, $email_content); // update to db. //$row->account_new_password = static::instance()->hashPassword($account_new_password); $row->account_confirm_code = $account_confirm_code; $row->account_confirm_code_since = $account_confirm_code_since; $row->save(); unset($account_confirm_code, $account_confirm_code_since, $account_new_password, $row); return true; } // account not found. return \Lang::get('account_didnot_found_entered_email'); }
echo Security::htmlentities($user['charm_why']); ?> </dd> <dt>何が得意?</dt> <dd><?php echo Security::htmlentities($user['skillfull']); ?> </dd> <dt>どうして?</dt> <dd><?php echo Security::htmlentities($user['skillfull_why']); ?> </dd> <dt>期待していること</dt> <dd><?php echo Security::htmlentities($user['expectation']); ?> </dd> </dl> <div class="introducerprofile pull-right"><a href="/user/profile/<?php echo $user['user_id']; ?> "> <img src="<?php echo $user['url']; ?> "></img> </a> <?php echo $user['name']; ?>
protected static function mention2link_callback($matches) { $member_name = $matches[2]; if (!($member = Model_Member::get_one4name($member_name))) { return $matches[0]; } $url = Uri::create('member/' . $member->id); $urlstr = Security::htmlentities($matches[1] . $member_name); return Html::anchor($url, $urlstr); }
<?php foreach ($list_accounts['items'] as $row) { ?> <tr> <td class="check-column"><?php echo \Extension\Form::checkbox('id[]', $row->account_id, array($row->account_id == '0' ? 'disabled' : null)); ?> </td> <td><?php echo $row->account_id; ?> </td> <td><?php echo \Security::htmlentities($row->account_username); ?> </td> <td><?php echo $row->account_email; ?> </td> <td> <?php $i = 1; foreach ($row->account_level as $lvl) { $lvg = \Model_AccountLevelGroup::find($lvl->level_group_id); echo $lvg->level_name; if (end($row->account_level) != $lvl) { echo ', '; }
public function action_edit($site_id = '') { // set redirect url $redirect = $this->getAndSetSubmitRedirection(); // check permission if (\Model_AccountLevelPermission::checkAdminPermission('siteman_perm', 'siteman_edit_perm') == false) { \Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('admin_permission_denied', array('page' => \Uri::string())))); \Response::redirect($redirect); } // read flash message for display errors. $form_status = \Session::get_flash('form_status'); if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) { $output['form_status'] = $form_status['form_status']; $output['form_status_message'] = $form_status['form_status_message']; } unset($form_status); // get selected site data $row = \Model_Sites::find($site_id); $output['site_id'] = $site_id; if ($row == null) { // not found selected site data. unset($output, $row); \Response::redirect($redirect); } // loop set form field. foreach ($row as $key => $value) { $output[$key] = $value; } // if form submitted if (\Input::method() == 'POST') { // store data for save $data['site_id'] = $site_id; $data['site_name'] = \Security::htmlentities(trim(\Input::post('site_name'))); $data['site_domain'] = str_replace(array('http://', '/'), '', mb_strtolower(\Security::strip_tags(trim(\Input::post('site_domain'))))); $data['site_status'] = (int) trim(\Input::post('site_status')); $validate = \Validation::forge(); $validate->add_callable(new \Extension\FsValidate()); $validate->add('site_name', \Lang::get('siteman_site_name'), array(), array('required')); $validate->add('site_domain', \Lang::get('siteman_site_domain'), array(), array('required')); if (!\Extension\NoCsrf::check()) { // validate token failed $output['form_status'] = 'error'; $output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token'); } elseif (!$validate->run()) { // validate failed $output['form_status'] = 'error'; $output['form_status_message'] = $validate->show_errors(); } else { // save $result = \Model_Sites::editSite($data); if ($result === true) { if (\Session::get_flash('form_status', null, false) == null) { \Session::set_flash('form_status', array('form_status' => 'success', 'form_status_message' => \Lang::get('admin_saved'))); } \Response::redirect($redirect); } else { $output['form_status'] = 'error'; $output['form_status_message'] = $result; } } // re-populate form $output['site_name'] = \Input::post('site_name'); $output['site_domain'] = \Input::post('site_domain'); $output['site_status'] = \Input::post('site_status'); } // <head> output ---------------------------------------------------------------------------------------------- $output['page_title'] = $this->generateTitle(\Lang::get('siteman_multisite_manager')); // <head> output ---------------------------------------------------------------------------------------------- // breadcrumb ------------------------------------------------------------------------------------------------- $page_breadcrumb = []; $page_breadcrumb[0] = ['name' => \Lang::get('admin_admin_home'), 'url' => \Uri::create('admin')]; $page_breadcrumb[1] = ['name' => \Lang::get('siteman_multisite_manager'), 'url' => \Uri::create('admin/siteman')]; $page_breadcrumb[2] = ['name' => \Lang::get('siteman_edit'), 'url' => \Uri::main()]; $output['page_breadcrumb'] = $page_breadcrumb; unset($page_breadcrumb); // breadcrumb ------------------------------------------------------------------------------------------------- return $this->generatePage('admin/templates/siteman/form_v', $output, false); }
public function action_edit($post_id = '') { // check permission if (\Model_AccountLevelPermission::checkAdminPermission('blog_perm', 'blog_write_perm') == false) { \Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('admin_permission_denied', array('page' => \Uri::string())))); \Response::redirect(\Uri::create('blog/admin')); } // read flash message for display errors. $form_status = \Session::get_flash('form_status'); if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) { $output['form_status'] = $form_status['form_status']; $output['form_status_message'] = $form_status['form_status_message']; } unset($form_status); // get current post data for form $row = \Blog\Model_Blog::find($post_id); if ($row == null) { \Response::redirect(\Uri::create('blog/admin')); } // loop set form field. foreach ($row as $key => $value) { $output[$key] = $value; } // if form submitted -------------------------------------------------------------------------------------------- if (\Input::method() == 'POST') { // store data for save $data['post_id'] = $post_id; $data['post_name'] = \Security::htmlentities(trim(\Input::post('post_name'))); $data['post_body'] = trim(\Input::post('post_body')); // validate form. $validate = \Validation::forge(); $validate->add('post_name', \Lang::get('blog_post_name'), array(), array('required')); $validate->add('post_body', \Lang::get('blog_post_content'), array(), array('required')); if (!\Extension\NoCsrf::check()) { // validate token failed $output['form_status'] = 'error'; $output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token'); } elseif (!$validate->run()) { // validate failed $output['form_status'] = 'error'; $output['form_status_message'] = $validate->show_errors(); } else { $result = \Blog\Model_Blog::editPost($data); if ($result === true) { if (\Session::get_flash('form_status', null, false) == null) { \Session::set_flash('form_status', array('form_status' => 'success', 'form_status_message' => \Lang::get('admin_saved'))); } \Response::redirect(\Uri::create('blog/admin')); } else { $output['form_status'] = 'error'; $output['form_status_message'] = $result; } } // re-populate form $output['post_name'] = $data['post_name']; $output['post_body'] = $data['post_body']; } unset($row); // <head> output ---------------------------------------------------------------------------------------------- $output['page_title'] = $this->generateTitle(\Lang::get('blog')); // <head> output ---------------------------------------------------------------------------------------------- return $this->generatePage('admin/blog_form_v', $output, false); }
public function view() { /* @var $table \Doctrine\DBAL\Schema\Table */ $table = $this->__table; $this->table_name = $table->getName(); $this->columns = array(); $indexes = $table->getIndexes(); $foreign_keys = $table->getForeignKeys(); $functions = \Config::get('dbdocs.functions'); foreach ($table->getColumns() as $column) { /* @var $column \Doctrine\DBAL\Schema\Column */ $comment = \Security::htmlentities($column->getComment()); if (is_callable($functions['mod_comment'])) { $comment = $functions['mod_comment']($comment, $column->getName(), $table->getName()); } $this->columns[$column->getName()] = array('type' => $column->getType()->getName(), 'length' => $column->getLength(), 'null' => !$column->getNotnull(), 'default' => $column->getDefault(), 'comment' => $comment, 'extras' => array()); foreach ($indexes as $index) { if (in_array($column->getName(), $index->getColumns())) { if ($index->isPrimary()) { $this->columns[$column->getName()]['extras'][] = 'PK'; } else { if ($index->isUnique()) { $this->columns[$column->getName()]['extras'][] = 'UI'; } else { if ($index->isSimpleIndex()) { $this->columns[$column->getName()]['extras'][] = 'I'; } } } } } $column->getAutoincrement() and $this->columns[$column->getName()]['extras'][] = 'AI'; $column->getUnsigned() and $this->columns[$column->getName()]['extras'][] = 'UN'; foreach ($foreign_keys as $foreign_key) { /* @var $foreign_key \Doctrine\DBAL\Schema\ForeignKeyConstraint */ if (in_array($column->getName(), $foreign_key->getColumns())) { $flip = array_flip($this->columns[$column->getName()]['extras']); if (isset($flip['I'])) { unset($flip['I']); $this->columns[$column->getName()]['extras'] = array_flip($flip); } $this->columns[$column->getName()]['extras'][] = 'FK'; $this->columns[$column->getName()]['foreign_key']['table_name'] = $foreign_key->getForeignTableName(); $foreign_key_columns = $foreign_key->getForeignColumns(); $this->columns[$column->getName()]['foreign_key']['column_name'] = $foreign_key_columns[0]; } } if (!isset($this->columns[$column->getName()]['foreign_key'])) { if (is_callable($functions['mod_foreign_key'])) { $this->columns[$column->getName()]['foreign_key'] = $functions['mod_foreign_key']($column->getName(), $table->getName()); } } } /** * get real information of columns */ $dd = Dbdocs::instance('default'); $platform = $dd->conn->getDatabasePlatform()->getName(); switch ($platform) { case 'mysql': $rows = $dd->conn->executeQuery(' select * from information_schema.columns where table_schema = :table_schema and table_name = :table_name order by ordinal_position', array('table_name' => $this->table_name, 'table_schema' => $dd->conn->getDatabase()))->fetchAll(); foreach ($rows as $row) { $real_columns[$row['COLUMN_NAME']] = array('type' => $row['DATA_TYPE'], 'length' => $row['CHARACTER_MAXIMUM_LENGTH'], 'default' => $row['COLUMN_DEFAULT']); } break; default: $real_columns = array(); break; } $this->set('columns', \Arr::merge($this->columns, $real_columns), false); $this->indexes = static::merge_indexes_and_foreign_keys($indexes, $foreign_keys, $table); }
public static function displayForm($value, &$settings, $model) { $class = get_called_class(); $settings = static::settings($settings); return '<input type="hidden" name="' . $settings['mapping']['fieldName'] . '" value="' . \Security::htmlentities(strval($value), ENT_QUOTES) . '" />'; }
public function action_index() { // load language \Lang::load('account'); // load config from db. $cfg_values = array('member_allow_register', 'member_verification'); $config = \Model_Config::getvalues($cfg_values); $output['config'] = $config; unset($cfg_values); // pre-set form values $output['account_username'] = null; $output['account_email'] = null; $output['account_password'] = null; $output['account_confirm_password'] = null; $output['captcha'] = null; if (\Input::method() == 'POST' && $config['member_allow_register']['value'] == '1') { // store data to array for send to model with add/register method. $data['account_username'] = trim(\Input::post('account_username')); $data['account_display_name'] = \Security::htmlentities($data['account_username']); $data['account_email'] = \Security::strip_tags(trim(\Input::post('account_email'))); $data['account_password'] = trim(\Input::post('account_password')); // validate form. $validate = \Validation::forge(); $validate->add_callable(new \Extension\FsValidate()); $validate->add('account_username', \Lang::get('account_username'), array(), array('required', 'noSpaceBetweenText')); $validate->add('account_email', \Lang::get('account_email'), array(), array('required', 'valid_email')); $validate->add('account_password', \Lang::get('account_password'), array(), array('required')); $validate->add('account_confirm_password', \Lang::get('account_confirm_password'), array(), array('required'))->add_rule('match_field', 'account_password'); if (!\Extension\NoCsrf::check()) { // validate token failed $output['form_status'] = 'error'; $output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token'); } elseif (!$validate->run()) { // validate failed $output['form_status'] = 'error'; $output['form_status_message'] = $validate->show_errors(); } else { // validate pass include APPPATH . 'vendor' . DS . 'securimage' . DS . 'securimage.php'; $securimage = new \Securimage(); if ($securimage->check(\Input::post('captcha')) == false) { $output['form_status'] = 'error'; $output['form_status_message'] = \Lang::get('account_wrong_captcha_code'); } else { $continue_register = true; } // if captcha pass if (isset($continue_register) && $continue_register === true) { // register action $result = \Model_Accounts::registerAccount($data); if ($result === true) { $output['hide_register_form'] = true; // if member verification is need, show those message. if no need, just show success message. if ($config['member_verification']['value'] == '0') { $output['form_status'] = 'success'; $output['form_status_message'] = \Lang::get('account_registration_complted'); } elseif ($config['member_verification']['value'] == '1') { $output['form_status'] = 'success'; $output['form_status_message'] = \Lang::get('account_registration_completed_need_confirm'); } elseif ($config['member_verification']['value'] == '2') { $output['form_status'] = 'success'; $output['form_status_message'] = \Lang::get('account_registration_completed_need_admin_verify'); } } else { $output['form_status'] = 'error'; $output['form_status_message'] = $result; } } } // re-populate form $output['account_username'] = trim(\Input::post('account_username')); $output['account_email'] = trim(\Input::post('account_email')); //$output['account_password'] = trim(\Input::post('account_password')); //$output['account_confirm_password'] = trim(\Input::post('account_confirm_password')); //$output['captcha'] = \Input::post('captcha'); } // <head> output ---------------------------------------------------------------------------------------------- $output['page_title'] = $this->generateTitle(\Lang::get('account_register')); // <head> output ---------------------------------------------------------------------------------------------- return $this->generatePage('front/templates/account/register_v', $output, false); }
/** * Assigns a variable by name. Assigned values will be available as a * variable within the view file: * * // This value can be accessed as $foo within the view * $view->set('foo', 'my value'); * * You can also use an array to set several values at once: * * // Create the values $food and $beverage in the view * $view->set(array('food' => 'bread', 'beverage' => 'water')); * * @param string variable name or an array of variables * @param mixed value * @param bool whether to encode the data or not * @return $this */ public function set($key, $value = null, $encode = null) { $encode === null and $encode = static::$auto_encode; if (is_array($key)) { foreach ($key as $name => $value) { $this->_data[$name] = $encode ? \Security::htmlentities($value) : $value; } } else { $this->_data[$key] = $encode ? \Security::htmlentities($value) : $value; } return $this; }
public function action_index() { // check permission if (\Model_AccountLevelPermission::checkAdminPermission('config_global', 'config_global') == false) { \Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('admin_permission_denied', array('page' => \Uri::string())))); \Response::redirect(\Uri::create('admin')); } // get timezone list for select box \Config::load('timezone', 'timezone'); $output['timezone_list'] = \Config::get('timezone.timezone', array()); // read flash message for display errors. $form_status = \Session::get_flash('form_status'); if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) { $output['form_status'] = $form_status['form_status']; $output['form_status_message'] = $form_status['form_status_message']; } unset($form_status); $allowed_field = array(); // load config to form. $result = \DB::select('*')->from(\Model_Config::getTableName())->as_object('Model_Config')->where('config_core', '1')->execute(); if ((is_array($result) || is_object($result)) && !empty($result)) { foreach ($result as $row) { $allowed_field[] = $row->config_name; $output[$row->config_name] = $row->config_value; } } unset($result, $row); // if form submitted if (\Input::method() == 'POST') { // store data to variable for update to db. $data = array(); foreach (\Input::post() as $key => $value) { if (in_array($key, $allowed_field)) { $data[$key] = $value; } } unset($allowed_field); // check again for some required default value config data. // tab website $data['site_name'] = \Security::htmlentities($data['site_name']); $data['page_title_separator'] = \Security::htmlentities($data['page_title_separator']); // tab account if (!isset($data['member_allow_register']) || $data['member_allow_register'] != '1') { $data['member_allow_register'] = '0'; } if (!isset($data['member_register_notify_admin']) || $data['member_register_notify_admin'] != '1') { $data['member_register_notify_admin'] = '0'; } if (!isset($data['simultaneous_login']) || $data['simultaneous_login'] != '1') { $data['simultaneous_login'] = '******'; } if (!is_numeric($data['member_max_login_fail'])) { $data['member_max_login_fail'] = '10'; } if (!is_numeric($data['member_login_fail_wait_time'])) { $data['member_login_fail_wait_time'] = '30'; } if (!is_numeric($data['member_login_remember_length'])) { $data['member_login_remember_length'] = '30'; } if (!is_numeric($data['member_confirm_wait_time'])) { $data['member_confirm_wait_time'] = '10'; } if (!isset($data['member_email_change_need_confirm']) || $data['member_email_change_need_confirm'] != '1') { $data['member_email_change_need_confirm'] = '0'; } if (!isset($data['allow_avatar']) || $data['allow_avatar'] != '1') { $data['allow_avatar'] = '0'; } if (!is_numeric($data['avatar_size'])) { $data['avatar_size'] = '200'; } if (empty($data['avatar_allowed_types'])) { $data['avatar_allowed_types'] = 'jpg|jpeg'; } if ($data['avatar_path'] == null) { unset($data['avatar_path']); } // tab email if ($data['mail_protocol'] == null) { $data['mail_protocol'] = 'mail'; } if (!is_numeric($data['mail_smtp_port'])) { $data['mail_smtp_port'] = '0'; } // tab content if (!is_numeric($data['content_items_perpage'])) { $data['content_items_perpage'] = '10'; } if (!is_numeric($data['content_admin_items_perpage'])) { $data['content_admin_items_perpage'] = '10'; } // tab media if (empty($data['media_allowed_types'])) { $data['media_allowed_types'] = 'avi|doc|docx|flv|gif|jpeg|jpg|mid|midi|mov|mp3|mpeg|mpg|pdf|png|swf|xls|xlsx|zip'; } // tab ftp if (!is_numeric($data['ftp_port'])) { $data['ftp_port'] = '21'; } if (!isset($data['ftp_passive']) || $data['ftp_passive'] != 'false') { $data['ftp_passive'] = 'true'; } // validate form. $validate = \Validation::forge(); if (!\Extension\NoCsrf::check()) { // validate token failed $output['form_status'] = 'error'; $output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token'); } elseif (!$validate->run()) { // validate failed $output['form_status'] = 'error'; $output['form_status_message'] = $validate->show_errors(); } else { // try to save config. $result = \Model_Config::saveData($data); // save change site name to sites table $site_id = \Model_Sites::getSiteId(false); $entry = \Model_Sites::find($site_id); $entry->site_name = $data['site_name']; $entry->save(); unset($entry, $site_id); if ($result === true) { \Session::set_flash('form_status', array('form_status' => 'success', 'form_status_message' => \Lang::get('admin_saved'))); \Response::redirect(\Uri::main()); } else { $output['form_status'] = 'error'; $output['form_status_message'] = $result; } } // re-populate form. foreach ($data as $key => $value) { $output[$key] = html_entity_decode($value); } } // <head> output ---------------------------------------------------------------------------------------------- $output['page_title'] = $this->generateTitle(\Lang::get('config_global_configuration')); // <head> output ---------------------------------------------------------------------------------------------- // breadcrumb ------------------------------------------------------------------------------------------------- $page_breadcrumb = []; $page_breadcrumb[0] = ['name' => \Lang::get('admin_admin_home'), 'url' => \Uri::create('admin')]; $page_breadcrumb[1] = ['name' => \Lang::get('config_global_configuration'), 'url' => \Uri::create('admin/config')]; $output['page_breadcrumb'] = $page_breadcrumb; unset($page_breadcrumb); // breadcrumb ------------------------------------------------------------------------------------------------- return $this->generatePage('admin/templates/config/index_v', $output, false); }
echo Security::htmlentities($introduced_user['charm']); ?> </dd> <dt>どうして?</dt> <dd><?php echo Security::htmlentities($introduced_user['charm_why']); ?> </dd> <dt>何が得意?</dt> <dd><?php echo Security::htmlentities($introduced_user['skillfull']); ?> </dd> <dt>どうして?</dt> <dd><?php echo Security::htmlentities($introduced_user['skillfull_why']); ?> </dd> </dl> <?php ?> </li> <?php //endforeach: ?> </ul> </div> <div class="clearfix"></div> </div>
</div> </li> <li><h4>Trial</h4> <div> <input type="checkbox" name="trial" value="1" <?php if (Security::htmlentities(Input::post("trial", $user->trial)) == 1) { echo "checked"; } ?> > </div> </li> <li><h4>enchant.js</h4> <div> <input type="checkbox" name="enchantJS" value="1" <?php if (Security::htmlentities(Input::post("enchantJS", $user->enchantJS)) == 1) { echo "checked"; } ?> > </div> </li> </ul> <ul class="forms"> <li><h4>Bank name</h4> <div> <input name="bank_name" type="text" <?php if ($add != 1) { ?> value="<?php echo Input::post("bank_name", $user->bank->name);
function e($string) { return Security::htmlentities($string); }
/** * Formats the given $var's output in a nice looking, Foldable interface. * * @param string $name * the name of the var * @param mixed $var * the variable * @param int $level * the indentation level * @param string $indent_char * the indentation character * @return string the formatted string. */ public static function format($name, $var, $level = 0, $indent_char = ' ', $scope = '') { $return = str_repeat($indent_char, $level); if (is_array($var)) { $id = 'fuel_debug_' . mt_rand(); $return .= "<i>{$scope}</i> <strong>{$name}</strong>"; $return .= " (Array, " . count($var) . " element" . (count($var) != 1 ? "s" : "") . ")"; if (count($var) > 0 and static::$max_nesting_level > $level) { $return .= " <a href=\"javascript:fuel_debug_toggle('{$id}');\" title=\"Click to " . (static::$js_toggle_open ? "close" : "open") . "\">↵</a>\n"; } else { $return .= "\n"; } if (static::$max_nesting_level <= $level) { $return .= str_repeat($indent_char, $level + 1) . "...\n"; } else { $sub_return = ''; foreach ($var as $key => $val) { $sub_return .= static::format($key, $val, $level + 1); } if (count($var) > 0) { $return .= "<span id=\"{$id}\" style=\"display: " . (static::$js_toggle_open ? "block" : "none") . ";\">{$sub_return}</span>"; } else { $return .= $sub_return; } } } elseif (is_string($var)) { $return .= "<i>{$scope}</i> <strong>{$name}</strong> (String): <span style=\"color:#E00000;\">\"" . \Security::htmlentities($var) . "\"</span> (" . strlen($var) . " characters)\n"; } elseif (is_float($var)) { $return .= "<i>{$scope}</i> <strong>{$name}</strong> (Float): {$var}\n"; } elseif (is_long($var)) { $return .= "<i>{$scope}</i> <strong>{$name}</strong> (Integer): {$var}\n"; } elseif (is_null($var)) { $return .= "<i>{$scope}</i> <strong>{$name}</strong> : null\n"; } elseif (is_bool($var)) { $return .= "<i>{$scope}</i> <strong>{$name}</strong> (Boolean): " . ($var ? 'true' : 'false') . "\n"; } elseif (is_double($var)) { $return .= "<i>{$scope}</i> <strong>{$name}</strong> (Double): {$var}\n"; } elseif (is_object($var)) { // dirty hack to get the object id ob_start(); var_dump($var); $contents = ob_get_contents(); ob_end_clean(); // process it based on the xdebug presence and configuration if (extension_loaded('xdebug') and ini_get('xdebug.overload_var_dump') === '1') { if (ini_get('html_errors')) { preg_match('~(.*?)\\)\\[<i>(\\d+)(.*)~', $contents, $matches); } else { preg_match('~class (.*?)#(\\d+)(.*)~', $contents, $matches); } } else { preg_match('~object\\((.*?)#(\\d+)(.*)~', $contents, $matches); } $id = 'fuel_debug_' . mt_rand(); $rvar = new \ReflectionObject($var); $vars = $rvar->getProperties(); $return .= "<i>{$scope}</i> <strong>{$name}</strong> (Object #" . $matches[2] . "): " . get_class($var); if (count($vars) > 0 and static::$max_nesting_level > $level) { $return .= " <a href=\"javascript:fuel_debug_toggle('{$id}');\" title=\"Click to " . (static::$js_toggle_open ? "close" : "open") . "\">↵</a>\n"; } $return .= "\n"; $sub_return = ''; foreach ($rvar->getProperties() as $prop) { $prop->isPublic() or $prop->setAccessible(true); if ($prop->isPrivate()) { $scope = 'private'; } elseif ($prop->isProtected()) { $scope = 'protected'; } else { $scope = 'public'; } if (static::$max_nesting_level <= $level) { $sub_return .= str_repeat($indent_char, $level + 1) . "...\n"; } else { $sub_return .= static::format($prop->name, $prop->getValue($var), $level + 1, $indent_char, $scope); } } if (count($vars) > 0) { $return .= "<span id=\"{$id}\" style=\"display: " . (static::$js_toggle_open ? "block" : "none") . ";\">{$sub_return}</span>"; } else { $return .= $sub_return; } } else { $return .= "<i>{$scope}</i> <strong>{$name}</strong>: {$var}\n"; } return $return; }
/** * Prep Value * * Prepares the value for display in the form * * @param string * @return string */ public function prep_value($value) { $value = \Security::htmlentities($value, ENT_QUOTES); return $value; }
<h1><?php echo __('account_view_login_history_of', array('name' => \Security::htmlentities($account->account_username))); ?> <small><?php echo \Extension\Html::anchor('admin/account/edit/' . $account_id, '<span class="glyphicon glyphicon-pencil"></span> ' . __('admin_edit'), array('class' => 'btn btn-default btn-xs')); ?> </small></h1> <?php echo \Form::open(array('action' => 'admin/account/delete_log/' . $account_id, 'class' => 'form-horizontal', 'role' => 'form')); ?> <div class="form-status-placeholder"> <?php if (isset($form_status) && isset($form_status_message)) { ?> <div class="alert alert-<?php echo str_replace('error', 'danger', $form_status); ?> "><button type="button" class="close" data-dismiss="alert">×</button><?php echo $form_status_message; ?> </div> <?php } ?> </div> <?php echo \Extension\NoCsrf::generate();
function displayPqp($output) { $css = str_replace("\n", "", <<<CSS .pQp{width:100%;z-index:9999;text-align:center;position:fixed;bottom:0;} * html .pQp{position:absolute;} .pQp *{margin:0 ;padding:0;border:none;background:#222;} #pQp{margin:0 auto;width:85%;min-width:960px;background-color:#222;border:12px solid #000;border-bottom:none;font-family:"Lucida Grande",Tahoma,Arial,sans-serif;-webkit-border-top-left-radius:15px;-webkit-border-top-right-radius:15px;-moz-border-radius-topleft:15px;-moz-border-radius-topright:15px;border-top-left-radius:15px;border-top-right-radius:15px;} #pQp tbody {background:transparent;} #pQp .pqp-box h3{font-weight:normal;line-height:200px;padding:0 15px;color:#fff;} .pQp,.pQp td{color:#444} #pqp-metrics{background:#000;width:100%} #pqp-console,#pqp-speed,#pqp-queries,#pqp-memory,#pqp-files,#pqp-config,#pqp-session,#pqp-get,#pqp-post{background-color:#000;border-top:1px solid #ccc;height:200px;overflow:auto} .pQp .green{color:#588e13!important} .pQp .blue{color:#3769a0!important} .pQp .purple{color:#953fa1!important} .pQp .orange{color:#d28c00!important} .pQp .red{color:#b72f09!important} .pQp .yellow{color:#CDCF3A!important} .pQp .cyan{color:#3EC4D3!important} .pQp .pink{color:#FF7CAD!important} .pQp .flesh{color:#FFA46E!important} #pQp,#pqp-console,#pqp-speed,#pqp-queries,#pqp-memory,#pqp-files,#pqp-config,#pqp-session,#pqp-get,#pqp-post{display:none} .pQp .console,.pQp .speed,.pQp .queries,.pQp .memory,.pQp .files,.pQp .config,.pQp .session,.pQp .get,.pQp .post{display:block!important} .pQp .console #pqp-console,.pQp .speed #pqp-speed,.pQp .queries #pqp-queries,.pQp .memory #pqp-memory,.pQp .files #pqp-files,.pQp .config #pqp-config,.pQp .session #pqp-session,.pQp .get #pqp-get,.pQp .post #pqp-post{display:block} .console td.green,.speed td.blue,.queries td.purple,.memory td.orange,.files td.red,.config td.yellow,.session td.cyan,.get td.pink,.post td.flesh{background:#222!important;border-bottom:6px solid #fff!important;cursor:default!important} .tallDetails #pQp .pqp-box{height:500px} .tallDetails #pQp .pqp-box h3{line-height:500px} .hideDetails #pQp .pqp-box{display:none!important} .hideDetails #pqp-footer{border-top:1px dotted #444} .hideDetails #pQp #pqp-metrics td{height:50px;background:#000!important;border-bottom:none!important;cursor:default!important} #pQp var{font-size:18px;margin:0 0 2px 0} #pQp h4{font-size:10px} .hideDetails .heightToggle{visibility:hidden} #pqp-metrics td{height:80px;width:11%;text-align:center;cursor:pointer;border:1px solid #000;border-bottom:6px solid #444;-webkit-border-top-left-radius:15px;-moz-border-radius-topleft:15px;-webkit-border-top-right-radius:15px;-moz-border-radius-topright:15px;border-top-left-radius:15px;border-top-right-radius:15px;} #pqp-metrics td:hover{background:#222;border-bottom:6px solid #777} #pqp-metrics .green{border-left:none} #pqp-metrics .red{border-right:none} #pqp-metrics h4{text-shadow:#000 1px 1px 1px} .pqp-side var{text-shadow:#444 1px 1px 1px;background-color:transparent;} .pQp var{font-size:23px;font-weight:bold;font-style:normal;margin:0 0 3px 0;display:block; margin-top: 16px !important;} .pQp h4{font-size:12px;color:#fff;margin:0 0 4px 0} .pQp .main{width:80%; float: left;} .pQp .main table{width:100%;} *+html .pQp .main{width:78%} * html .pQp .main{width:77%} .pQp .main td{padding:7px 15px;text-align:left;border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px dotted #323232;color:#FFF;} .pQp .main td,.pQp .main pre{font-family:Monaco,"Consolas","Lucida Console","Courier New",monospace;font-size:11px; background: #222;} .pQp .main td.alt{background:#111} .pQp .main tr.alt td{background:#2e2e2e;border-top:1px dotted #4e4e4e} .pQp .main tr.alt td.alt{background:#333} .pQp .main td b{float:right;font-weight:normal;color:#e6f387} .pQp .main td:hover{background:#2e2e2e} .pQp .pqp-side{float:left;width:20%;background:#000;color:#fff;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px;text-align:center} .pQp .pqp-side td{padding:10px 0 5px 0;background-color: #000; text-align: center !important} .pQp .pqp-side var{color:#fff;font-size:15px} .pQp .pqp-side h4{font-weight:normal;color:#f4fcca;font-size:11px;background-color:transparent;} #pqp-console .pqp-side td{padding:12px 0; text-align: center !important} #pqp-console .pqp-side td.alt1{background:#588e13;width:51%} #pqp-console .pqp-side td.alt2{background-color:#b72f09} #pqp-console .pqp-side td.alt3{background:#d28c00;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-console .pqp-side td.alt4{background-color:#3769a0;border-bottom:1px solid #274b74} #pqp-console .main table{width:100%} #pqp-console td div{width:100%;overflow:hidden;background-color:transparent;} #pqp-console td.type{font-family:"Lucida Grande",Tahoma,Arial,sans-serif;text-align:center;text-transform:uppercase;font-size:9px;padding-top:9px;color:#f4fcca;vertical-align:top;width:40px} .pQp .log-log td.type{background:#47740d!important} .pQp .log-error td.type{background:#9b2700!important} .pQp .log-memory td.type{background:#d28c00!important} .pQp .log-speed td.type{background:#2b5481!important} .pQp .log-log pre{color:#999;background-color:transparent;} .pQp .log-log td:hover pre{color:#fff} .pQp .log-memory em,.pQp .log-speed em{float:left;font-style:normal;display:block;color:#fff;background-color:transparent;} .pQp .log-memory pre,.pQp .log-speed pre{float:right;white-space:normal;display:block;color:#fffd70;background-color:transparent;} #pqp-speed .pqp-side td {padding:12px 0;border-left:1px solid #1e3c5c;border-bottom:1px solid #1e3c5c;border-right:1px solid #1e3c5c;} #pqp-speed .pqp-side td.alt{background-color:#2b5481;border-bottom:none;border-left:none;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-queries .pqp-side td{border-bottom:1px solid #662a6e;border-left:1px solid #662a6e;border-right:1px solid #662a6e} #pqp-queries .pqp-side td.alt{background-color:#7b3384;border-bottom:none;border-left:none;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-queries .main b{float:none;background-color:transparent;} #pqp-queries .main em{display:block;padding:2px 0 0 0;font-style:normal;color:#aaa;background-color:transparent;} #pqp-memory .pqp-side td {padding:12px 0;background-color:#c48200;border-bottom:1px solid #865900;border-left:1px solid #865900;border-right:1px solid #865900} #pqp-memory .pqp-side td.alt{background-color:#ac7200;border-bottom:bone;border-left:none;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-files .pqp-side td{border-bottom:1px solid #7c1f00;border-left:1px solid #7c1f00;border-right:1px solid #7c1f00} #pqp-files .pqp-side td.alt{background-color:#9b2700;border-bottom:none;border-left:none;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-config .pqp-side td{border-bottom:1px solid #CDCF3A;border-left:1px solid #CDCF3A;border-right:1px solid #CDCF3A} #pqp-config .pqp-side td.alt{background-color:#CDCF3A;border-bottom:none;border-left:none;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-session .pqp-side td{border-bottom:1px solid #3EC4D3;border-left:1px solid #3EC4D3;border-right:1px solid #3EC4D3} #pqp-session .pqp-side td.alt{background-color:#3EC4D3;border-bottom:none;border-left:none;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-get .pqp-side td{border-bottom:1px solid #FF7CAD;border-left:1px solid #FF7CAD;border-right:1px solid #FF7CAD} #pqp-get .pqp-side td.alt{background-color:#FF7CAD;border-bottom:none;border-left:none;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-post .pqp-side td{border-bottom:1px solid #FFA46E;border-left:1px solid #FFA46E;border-right:1px solid #FFA46E} #pqp-post .pqp-side td.alt{background-color:#FFA46E;border-bottom:none;border-left:none;-webkit-border-bottom-left-radius:30px;-moz-border-radius-bottomleft:30px;border-bottom-left-radius:30px} #pqp-footer{width:100%;background:#000;font-size:11px;border-top:1px solid #ccc} #pqp-footer td{padding:0!important;border:none!important} #pqp-footer strong{color:#fff} #pqp-footer a{color:#999;padding:5px 10px;text-decoration:none} #pqp-footer .credit{width:20%;text-align:left} #pqp-footer .credit a{line-height: 30px} #pqp-footer .pqp-actions{width:80%;text-align:right} #pqp-footer .pqp-actions a{float:right;width:auto} #pqp-footer a:hover,#pqp-footer a:hover strong,#pqp-footer a:hover b{background:#fff;color:black!important;text-decoration:none} #pqp-footer a:active,#pqp-footer a:active strong,#pqp-footer a:active b{background:#ecf488;color:green!important} #openProfiler { position: fixed; bottom: 0; right: 20px; } #openProfiler a { height:32px;text-align:center;width:100px;background-color:#222;border:2px solid #000;border-bottom:none;font-size:12px;font-family:"Lucida Grande",Tahoma,Arial,sans-serif;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;;border-top-right-radius:4px;color:#999;line-height: 32px;display:block;} #openProfiler a:hover{color:white;text-decoration:none} CSS ); $return_output = ''; $return_output .= <<<JAVASCRIPT <!-- JavaScript --> <script type="text/javascript"> \tvar PQP_DETAILS = true; \tvar PQP_HEIGHT = "tall"; \taddEvent(window, 'load', loadCSS); \tfunction changeTab(tab) { \t\tvar pQp = document.getElementById('pQp'); \t\thideAllTabs(); \t\taddClassName(pQp, tab, true); \t} \tfunction hideAllTabs() { \t\tvar pQp = document.getElementById('pQp'); \t\tremoveClassName(pQp, 'console'); \t\tremoveClassName(pQp, 'speed'); \t\tremoveClassName(pQp, 'queries'); \t\tremoveClassName(pQp, 'memory'); \t\tremoveClassName(pQp, 'files'); \t\tremoveClassName(pQp, 'config'); \t\tremoveClassName(pQp, 'session'); \t\tremoveClassName(pQp, 'get'); \t\tremoveClassName(pQp, 'post'); \t} \tfunction toggleDetails(){ \t\tvar container = document.getElementById('pqp-container'); \t\tif(PQP_DETAILS){ \t\t\taddClassName(container, 'hideDetails', true); \t\t\tPQP_DETAILS = false; \t\t} \t\telse{ \t\t\tremoveClassName(container, 'hideDetails'); \t\t\tPQP_DETAILS = true; \t\t} \t} \tfunction toggleHeight(){ \t\tvar container = document.getElementById('pqp-container'); \t\tif(PQP_HEIGHT == "short"){ \t\t\taddClassName(container, 'tallDetails', true); \t\t\tPQP_HEIGHT = "tall"; \t\t} \t\telse{ \t\t\tremoveClassName(container, 'tallDetails'); \t\t\tPQP_HEIGHT = "short"; \t\t} \t} \tfunction toggleBottom(){ \t\tvar container = document.getElementById('pqp-container'); \t\tif (container.style.position == "inherit") \t\t{ \t\t\tcontainer.style.position=""; \t\t} \t\telse \t\t{ \t\t\tcontainer.style.position="inherit"; \t\t} \t} \tfunction loadCSS() { \t\tvar sheet = document.createElement("style"); \t\tsheet.setAttribute("type", "text/css"); \t\tsheet.innerHTML = '{$css}'; \t\tdocument.getElementsByTagName("head")[0].appendChild(sheet); \t} \t//http://www.bigbold.com/snippets/posts/show/2630 \tfunction addClassName(objElement, strClass, blnMayAlreadyExist){ \t if ( objElement.className ){ \t var arrList = objElement.className.split(' '); \t if ( blnMayAlreadyExist ){ \t var strClassUpper = strClass.toUpperCase(); \t for ( var i = 0; i < arrList.length; i++ ){ \t if ( arrList[i].toUpperCase() == strClassUpper ){ \t arrList.splice(i, 1); \t i--; \t } \t } \t } \t arrList[arrList.length] = strClass; \t objElement.className = arrList.join(' '); \t } \t else{ \t objElement.className = strClass; \t } \t} \t//http://www.bigbold.com/snippets/posts/show/2630 \tfunction removeClassName(objElement, strClass){ \t if ( objElement.className ){ \t var arrList = objElement.className.split(' '); \t var strClassUpper = strClass.toUpperCase(); \t for ( var i = 0; i < arrList.length; i++ ){ \t if ( arrList[i].toUpperCase() == strClassUpper ){ \t arrList.splice(i, 1); \t i--; \t } \t } \t objElement.className = arrList.join(' '); \t } \t} \t//http://ejohn.org/projects/flexible-javascript-events/ \tfunction addEvent( obj, type, fn ) { \t if ( obj.attachEvent ) { \t obj["e"+type+fn] = fn; \t obj[type+fn] = function() { obj["e"+type+fn]( window.event ) }; \t obj.attachEvent( "on"+type, obj[type+fn] ); \t } \t else{ \t obj.addEventListener( type, fn, false ); \t } \t} \tfunction openProfiler() \t{ \t\tdocument.getElementById("pqp-container").style.display = "block"; \t\tdocument.getElementById("openProfiler").style.display = "none"; \t} \tfunction closeProfiler() \t{ \t\tdocument.getElementById("pqp-container").style.display = "none"; \t\tdocument.getElementById("openProfiler").style.display = "block"; \t} \tfunction preventDefault(e) { \t e = e || window.event; \t if (e.preventDefault) \t e.preventDefault(); \t e.returnValue = false; \t} \twindow.onload = function(){ \t\tdocument.getElementById('pqp-console').onmousewheel = function(e){ \t\t document.getElementById('pqp-console').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\tdocument.getElementById('pqp-speed').onmousewheel = function(e){ \t\t document.getElementById('pqp-speed').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\tdocument.getElementById('pqp-queries').onmousewheel = function(e){ \t\t document.getElementById('pqp-queries').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\tdocument.getElementById('pqp-memory').onmousewheel = function(e){ \t\t document.getElementById('pqp-memory').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\tdocument.getElementById('pqp-files').onmousewheel = function(e){ \t\t document.getElementById('pqp-files').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\tdocument.getElementById('pqp-config').onmousewheel = function(e){ \t\t document.getElementById('pqp-config').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\tdocument.getElementById('pqp-session').onmousewheel = function(e){ \t\t document.getElementById('pqp-session').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\tdocument.getElementById('pqp-get').onmousewheel = function(e){ \t\t document.getElementById('pqp-get').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\tdocument.getElementById('pqp-post').onmousewheel = function(e){ \t\t document.getElementById('pqp-post').scrollTop -= e.wheelDeltaY; \t\t preventDefault(e); \t\t} \t\ttoggleBottom(); \t} </script> JAVASCRIPT; $return_output .= '<div style="clear:both;"></div><div id="pqp-container" class="pQp tallDetails" style="display:none;position:inherit;">'; $logCount = count($output['logs']['console']); $fileCount = count($output['files']); $memoryUsed = $output['memoryTotals']['used']; $queryCount = $output['queryTotals']['count']; $speedTotal = $output['speedTotals']['total']; $printarray = function ($items, $depth, &$class, &$count) use(&$printarray) { $output = ''; foreach ($items as $item => $value) { $count++; $output .= '<tr><td class="' . $class . '">'; if (is_bool($value)) { $output .= '<b>' . ($value ? 'true' : 'false') . '</b>'; } elseif (is_null($value)) { $output .= '<b>null</b>'; } elseif (!is_array($value) and !is_object($value)) { $output .= '<b>' . \Security::htmlentities($value) . '</b>'; } $output .= str_repeat('› ', $depth) . $item . '</td></tr>'; if ($class == '') { $class = 'alt'; } else { $class = ''; } is_array($value) and $output .= $printarray($value, $depth + 1, $class, $count); is_object($value) and $output .= $printarray($value, $depth + 1, $class, $count); } return $output; }; $class = ''; $configCount = 0; $output['configItems'] = $printarray(\Config::$items, 0, $class, $configCount); $class = ''; $sessionCount = 0; $output['sessionItems'] = $printarray(\Session::get(null), 0, $class, $sessionCount); $class = ''; $getCount = 0; $output['getItems'] = $printarray(\Input::get(), 0, $class, $getCount); $class = ''; $postCount = 0; $output['postItems'] = $printarray(\Input::post(), 0, $class, $postCount); $return_output .= <<<PQPTABS <div id="pQp" class="console"> <table id="pqp-metrics" cellspacing="0"> <tr> \t<td class="green" onclick="changeTab('console');"> \t\t<var>{$logCount}</var> \t\t<h4>Console</h4> \t</td> \t<td class="blue" onclick="changeTab('speed');"> \t\t<var>{$speedTotal}</var> \t\t<h4>Load Time</h4> \t</td> \t<td class="purple" onclick="changeTab('queries');"> \t\t<var>{$queryCount} Queries</var> \t\t<h4>Database</h4> \t</td> \t<td class="orange" onclick="changeTab('memory');"> \t\t<var>{$memoryUsed}</var> \t\t<h4>Memory Used</h4> \t</td> \t<td class="red" onclick="changeTab('files');"> \t\t<var>{$fileCount} Files</var> \t\t<h4>Included</h4> \t</td> \t<td class="yellow" onclick="changeTab('config');"> \t\t<var>{$configCount} Config</var> \t\t<h4>items loaded</h4> \t</td> \t<td class="cyan" onclick="changeTab('session');"> \t\t<var>{$sessionCount} Session</var> \t\t<h4>vars loaded</h4> \t</td> \t<td class="pink" onclick="changeTab('get');"> \t\t<var>{$getCount} GET</var> \t\t<h4>vars loaded</h4> \t</td> \t<td class="flesh" onclick="changeTab('post');"> \t\t<var>{$postCount} POST</var> \t\t<h4>vars loaded</h4> \t</td> </tr> </table> PQPTABS; $return_output .= '<div id="pqp-console" class="pqp-box">'; if ($logCount == 0) { $return_output .= '<h3>This panel has no log items.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr> <td class="alt1"><var>' . $output['logs']['logCount'] . '</var><h4>Logs</h4></td> <td class="alt2"><var>' . $output['logs']['errorCount'] . '</var> <h4>Errors</h4></td> </tr> <tr> <td class="alt3"><var>' . $output['logs']['memoryCount'] . '</var> <h4>Memory</h4></td> <td class="alt4"><var>' . $output['logs']['speedCount'] . '</var> <h4>Speed</h4></td> </tr> </table> <div class="main"><table cellspacing="0">'; $class = ''; foreach ($output['logs']['console'] as $log) { $return_output .= '<tr class="log-' . $log['type'] . '"> <td class="type">' . $log['type'] . '</td> <td class="' . $class . '">'; if ($log['type'] == 'log') { $return_output .= '<div><pre>' . $log['data'] . '</pre></div>'; } elseif ($log['type'] == 'memory') { $return_output .= '<div><pre>' . $log['data'] . '</pre> <em>' . $log['dataType'] . '</em>: ' . $log['name'] . ' </div>'; } elseif ($log['type'] == 'speed') { $return_output .= '<div><pre>' . $log['data'] . '</pre> <em>' . $log['name'] . '</em></div>'; } elseif ($log['type'] == 'error') { $return_output .= '<div><em>Line ' . $log['line'] . '</em> : ' . $log['data'] . ' <pre>' . $log['file'] . '</pre></div>'; } $return_output .= '</td></tr>'; if ($class == '') { $class = 'alt'; } else { $class = ''; } } $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= '<div id="pqp-speed" class="pqp-box">'; if ($output['logs']['speedCount'] == 0) { $return_output .= '<h3>This panel has no log items.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr><td><var>' . $output['speedTotals']['total'] . '</var><h4>Load Time</h4></td></tr> <tr><td class="alt"><var>' . $output['speedTotals']['allowed'] . ' s</var> <h4>Max Execution Time</h4></td></tr> </table> <div class="main"><table cellspacing="0">'; $class = ''; foreach ($output['logs']['console'] as $log) { if ($log['type'] == 'speed') { $return_output .= '<tr class="log-' . $log['type'] . '"> <td class="' . $class . '">'; $return_output .= '<div><pre>' . $log['data'] . '</pre> <em>' . $log['name'] . '</em></div>'; $return_output .= '</td></tr>'; if ($class == '') { $class = 'alt'; } else { $class = ''; } } } $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= '<div id="pqp-queries" class="pqp-box">'; if ($output['queryTotals']['count'] == 0) { $return_output .= '<h3>This panel has no log items.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr><td><var>' . $output['queryTotals']['count'] . '</var><h4>Total Queries</h4></td></tr> <tr><td><var>' . $output['queryTotals']['time'] . '</var> <h4>Total Time</h4></td></tr> <tr><td class="alt"><var>' . $output['queryTotals']['duplicates'] . '</var> <h4>Duplicates</h4></td></tr> </table> <div class="main"><table cellspacing="0">'; $class = ''; foreach ($output['queries'] as $query) { $return_output .= '<tr> <td class="' . $class . '">' . $query['sql']; $return_output .= '<em>'; if (isset($query['explain'])) { isset($query['explain']['possible_keys']) and $return_output .= 'Possible keys: <b>' . $query['explain']['possible_keys'] . '</b> ·'; isset($query['explain']['key']) and $return_output .= 'Key Used: <b>' . $query['explain']['key'] . '</b> ·'; isset($query['explain']['type']) and $return_output .= 'Type: <b>' . $query['explain']['type'] . '</b> ·'; isset($query['explain']['type']) and $return_output .= 'Rows: <b>' . $query['explain']['rows'] . '</b> ·'; } $return_output .= 'Speed: <b>' . $query['time'] . '</b>'; $query['duplicate'] and $return_output .= ' · <b>DUPLICATE</b>'; $return_output .= '</em></td></tr>'; if ($class == '') { $class = 'alt'; } else { $class = ''; } } $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= '<div id="pqp-memory" class="pqp-box">'; if ($output['logs']['memoryCount'] == 0) { $return_output .= '<h3>This panel has no log items.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr><td><var>' . $output['memoryTotals']['used'] . '</var><h4>Used Memory</h4></td></tr> <tr><td class="alt"><var>' . $output['memoryTotals']['total'] . '</var> <h4>Total Available</h4></td></tr> </table> <div class="main"><table cellspacing="0">'; $class = ''; foreach ($output['logs']['console'] as $log) { if ($log['type'] == 'memory') { $return_output .= '<tr class="log-' . $log['type'] . '">'; $return_output .= '<td class="' . $class . '"><b>' . $log['data'] . '</b> <em>' . $log['dataType'] . '</em>: ' . $log['name'] . '</td>'; $return_output .= '</tr>'; if ($class == '') { $class = 'alt'; } else { $class = ''; } } } $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= '<div id="pqp-files" class="pqp-box">'; if ($output['fileTotals']['count'] + $output['pathTotals']['count'] == 0) { $return_output .= '<h3>This panel has no log items.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr><td><var>' . count($output['paths']) . '</var><h4>Finder Paths</h4></td></tr> <tr><td><var>' . $output['fileTotals']['count'] . '</var><h4>Total Files</h4></td></tr> <tr><td><var>' . $output['fileTotals']['size'] . '</var> <h4>Total Size</h4></td></tr> <tr><td class="alt"><var>' . $output['fileTotals']['largest'] . '</var> <h4>Largest</h4></td></tr> </table> <div class="main"><table cellspacing="0">'; $class = ''; $return_output .= '<tr><td><strong style="font-size:120%;">Finder paths:</strong></td></tr>'; foreach ($output['paths'] as $path) { $return_output .= '<tr><td class="' . $class . '">' . $path . '</td></tr>'; if ($class == '') { $class = 'alt'; } else { $class = ''; } } $return_output .= '<tr><td><strong style="font-size:120%;">Loaded files:</strong></td></tr>'; foreach ($output['files'] as $file) { $return_output .= '<tr><td class="' . $class . '"><b>' . $file['size'] . '</b> ' . $file['name'] . '</td></tr>'; if ($class == '') { $class = 'alt'; } else { $class = ''; } } $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= '<div id="pqp-config" class="pqp-box">'; if ($configCount == 0) { $return_output .= '<h3>This panel has no config items.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr><td class="alt"><var>' . $configCount . '</var> <h4>Configuration items</h4></td></tr> </table> <div class="main"><table cellspacing="0">'; $return_output .= $output['configItems']; $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= '<div id="pqp-session" class="pqp-box">'; if ($sessionCount == 0) { $return_output .= '<h3>This panel has no session variables.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr><td class="alt"><var>' . $sessionCount . '</var> <h4>Session variables</h4></td></tr> </table> <div class="main"><table cellspacing="0">'; $return_output .= $output['sessionItems']; $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= '<div id="pqp-get" class="pqp-box">'; if ($getCount == 0) { $return_output .= '<h3>This panel has no GET variables.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr><td class="alt"><var>' . $getCount . '</var> <h4>GET variables</h4></td></tr> </table> <div class="main"><table cellspacing="0">'; $return_output .= $output['getItems']; $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= '<div id="pqp-post" class="pqp-box">'; if ($postCount == 0) { $return_output .= '<h3>This panel has no POST variables.</h3>'; } else { $return_output .= '<table class="pqp-side" cellspacing="0"> <tr><td class="alt"><var>' . $postCount . '</var> <h4>POST variables</h4></td></tr> </table> <div class="main"><table cellspacing="0">'; $return_output .= $output['postItems']; $return_output .= '</table></div>'; } $return_output .= '</div>'; $return_output .= <<<FOOTER \t<table id="pqp-footer" cellspacing="0"> \t\t<tr> \t\t\t<td class="credit"> \t\t\t\t<a href="https://github.com/particletree" target="_blank"> \t\t\t\tBased on \t\t\t\t<strong>PHP</strong> \t\t\t\t<b class="green">Q</b><b class="blue">u</b><b class="purple">i</b><b class="orange">c</b><b class="red">k</b> \t\t\t\tProfiler</a></td> \t\t\t<td class="pqp-actions"> \t\t\t\t<a class="closeProfiler" href="#" onclick="closeProfiler();return false" title="Close Code Profiler">Close</a> \t\t\t\t<a class="heightToggle" href="#" onclick="toggleHeight();return false" title="Toggle Height">Height</a> \t\t\t\t<a class="bottomToggle" href="#" onclick="toggleBottom();return false" title="Toggle Bottom">Bottom</a> \t\t\t</td> \t\t</tr> \t</table> FOOTER; $return_output .= '</div></div><div id="openProfiler"><a href="#" onclick="openProfiler();return false" title="Open Code Profiler">Code Profiler</a></div>'; return $return_output; }
/** * list websites from db * * @param array $option available options: [list_for], [filter_], [orders], [sort], [offset], [limit], [list_for], [unlimit] * @return array */ public static function listSites($option = array()) { $query = static::query(); // where conditions if (!isset($option['list_for']) || isset($option['list_for']) && $option['list_for'] == 'front') { $query->where('site_status', 1); } // filters -------------------------------------------------------------------------------------------------------------------------------------------- if (isset($option['filter_site_id'])) { $query->where('site_id', 'LIKE', '%' . $option['filter_site_id'] . '%'); } if (isset($option['filter_site_name'])) { $query->where('site_name', 'LIKE', '%' . \Security::htmlentities($option['filter_site_name']) . '%'); } if (isset($option['filter_site_domain'])) { $query->where('site_domain', 'LIKE', '%' . mb_strtolower(\Security::strip_tags($option['filter_site_domain'])) . '%'); } if (isset($option['filter_site_status'])) { $query->where('site_status', $option['filter_site_status']); } // end filters -------------------------------------------------------------------------------------------------------------------------------------- $output['total'] = $query->count(); // sort and order $allowed_orders = array('site_id', 'site_name', 'site_domain', 'site_status', 'site_create', 'site_update'); if (!isset($option['orders']) || isset($option['orders']) && !in_array($option['orders'], $allowed_orders)) { $option['orders'] = 'site_id'; } unset($allowed_orders); if (!isset($option['sort'])) { $option['sort'] = 'ASC'; } // offset and limit if (!isset($option['offset'])) { $option['offset'] = 0; } if (!isset($option['limit'])) { if (isset($option['list_for']) && $option['list_for'] == 'admin') { $option['limit'] = \Model_Config::getval('content_admin_items_perpage'); } else { $option['limit'] = \Model_Config::getval('content_items_perpage'); } } // get the results from sort, order, offset, limit. $query->order_by($option['orders'], $option['sort']); if (!isset($option['unlimit']) || isset($option['unlimit']) && $option['unlimit'] == false) { $query->offset($option['offset'])->limit($option['limit']); } $output['items'] = $query->get(); unset($query); return $output; }
public function action_index() { // load language \Lang::load('account'); // is user logged in? if (\Model_Accounts::isMemberLogin() == false) { \Response::redirect(\Uri::create('account/login') . '?rdr=' . urlencode(\Uri::main())); } // load config from db. $cfg_values = array('allow_avatar', 'avatar_size', 'avatar_allowed_types'); $config = \Model_Config::getvalues($cfg_values); $output['config'] = $config; // set config data to display in view file. $output['allow_avatar'] = $config['allow_avatar']['value']; $output['avatar_size'] = $config['avatar_size']['value']; $output['avatar_allowed_types'] = $config['avatar_allowed_types']['value']; unset($cfg_values); // read flash message for display errors. this is REQUIRED if you coding the check login with simultaneous login detection on. $form_status = \Session::get_flash('form_status'); if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) { $output['form_status'] = $form_status['form_status']; $output['form_status_message'] = $form_status['form_status_message']; } unset($form_status); // get account id $cookie_account = \Model_Accounts::forge()->getAccountCookie(); // get account data $query = \Model_Accounts::query()->where('account_id', $cookie_account['account_id'])->where('account_username', $cookie_account['account_username'])->where('account_email', $cookie_account['account_email']); if ($query->count() > 0) { // found $row = $query->get_one(); $output['row'] = $row; // loop set data for display in form. foreach ($row as $key => $field) { $output[$key] = $field; } // get account_fields data of current user and send to views form // to access data from view, use $account_field['field_name']. for example: the field_name is phone, just use $account_field['phone']; $account_fields = \Model_AccountFields::getData($cookie_account['account_id']); if ($account_fields->count() > 0) { foreach ($account_fields as $af) { $output['account_field'][$af->field_name] = \Extension\Str::isJsonFormat($af->field_value) ? json_decode($af->field_value, true) : $af->field_value; } } unset($account_fields, $af); // get timezone list to display. \Config::load('timezone', 'timezone'); $output['timezone_list'] = \Config::get('timezone.timezone', array()); unset($query); } else { // not found account. unset($cookie_account, $query); \Model_Accounts::logout(); \Response::redirect(\Uri::create('account/login') . '?rdr=' . urlencode(\Uri::main())); } // if form submitted if (\Input::method() == 'POST') { // store data for save to db. $data['account_id'] = $cookie_account['account_id']; $data['account_username'] = $cookie_account['account_username']; //trim(\Input::post('account_username'));//no, do not edit username. $data['account_old_email'] = $cookie_account['account_email']; $data['account_email'] = \Security::strip_tags(trim(\Input::post('account_email'))); $data['account_password'] = trim(\Input::post('account_password')); $data['account_new_password'] = trim(\Input::post('account_new_password')); $data['account_display_name'] = \Security::htmlentities(\Input::post('account_display_name')); $data['account_firstname'] = \Security::htmlentities(trim(\Input::post('account_firstname', null))); if ($data['account_firstname'] == null) { $data['account_firstname'] = null; } $data['account_middlename'] = \Security::htmlentities(trim(\Input::post('account_middlename', null))); if ($data['account_middlename'] == null) { $data['account_middlename'] = null; } $data['account_lastname'] = \Security::htmlentities(trim(\Input::post('account_lastname', null))); if ($data['account_lastname'] == null) { $data['account_lastname'] = null; } $data['account_birthdate'] = \Security::strip_tags(trim(\Input::post('account_birthdate', null))); if ($data['account_birthdate'] == null) { $data['account_birthdate'] = null; } $data['account_signature'] = \Security::htmlentities(trim(\Input::post('account_signature', null))); if ($data['account_signature'] == null) { $data['account_signature'] = null; } $data['account_timezone'] = \Security::strip_tags(trim(\Input::post('account_timezone'))); $data['account_language'] = \Security::strip_tags(trim(\Input::post('account_language', null))); if ($data['account_language'] == null) { $data['account_language'] = null; } // store data for account_fields $data_field = array(); if (is_array(\Input::post('account_field'))) { foreach (\Input::post('account_field') as $field_name => $field_value) { if (is_string($field_name)) { if (is_array($field_value)) { $field_value = json_encode($field_value); } $data_field[$field_name] = $field_value; } } } unset($field_name, $field_value); // validate form. $validate = \Validation::forge(); $validate->add_callable(new \Extension\FsValidate()); //$validate->add('account_username', \Lang::get('account_username'), array(), array('required', 'noSpaceBetweenText'));//no, do not edit username. $validate->add('account_email', \Lang::get('account_email'), array(), array('required', 'valid_email')); $validate->add('account_display_name', \Lang::get('account_display_name'), array(), array('required')); $validate->add('account_birthdate', \Lang::get('account_birthdate'))->add_rule('valid_date', 'Y-m-d'); $validate->add('account_timezone', \Lang::get('account_timezone'), array(), array('required')); if (!\Extension\NoCsrf::check()) { // validate token failed $output['form_status'] = 'error'; $output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token'); } elseif (!$validate->run()) { // validate failed $output['form_status'] = 'error'; $output['form_status_message'] = $validate->show_errors(); } else { // save $result = \Model_accounts::memberEditProfile($data, $data_field); if ($result === true) { if (\Session::get_flash('form_status', null, false) == null) { \Session::set_flash('form_status', array('form_status' => 'success', 'form_status_message' => \Lang::get('account_saved'))); } \Response::redirect(\Uri::main()); } else { $output['form_status'] = 'error'; $output['form_status_message'] = $result; } } // re-populate form //$output['account_username'] = trim(\Input::post('account_username'));//no, do not edit username. $output['account_email'] = trim(\Input::post('account_email')); $output['account_display_name'] = trim(\Input::post('account_display_name')); $output['account_firstname'] = trim(\Input::post('account_firstname')); $output['account_middlename'] = trim(\Input::post('account_middlename')); $output['account_lastname'] = trim(\Input::post('account_lastname')); $output['account_birthdate'] = trim(\Input::post('account_birthdate')); $output['account_signature'] = trim(\Input::post('account_signature')); $output['account_timezone'] = trim(\Input::post('account_timezone')); $output['account_language'] = trim(\Input::post('account_language')); // re-populate form for account fields if (is_array(\Input::post('account_field'))) { foreach (\Input::post('account_field') as $field_name => $field_value) { if (is_string($field_name)) { $output['account_field'][$field_name] = $field_value; } } } unset($field_name, $field_value); } // clear variables unset($cookie_account, $data, $result); // <head> output ---------------------------------------------------------------------------------------------- $output['page_title'] = $this->generateTitle(\Lang::get('account_edit')); // <head> output ---------------------------------------------------------------------------------------------- return $this->generatePage('front/templates/account/edit_v', $output, false); }
</div> </li> <li><h4>Email address</h4> <div> <?php if (isset($error)) { ?> <p class="error"><?php echo $error; ?> </p> <?php } ?> <input class="wl" name="email" type="email" required value="<?php echo Security::htmlentities(Input::post("email", $user->email)); ?> "> </div> </li> <li><h4>Image</h4> <div> <?php if ($user->img_path != "") { echo '<img src="/assets/img/pictures/s_' . $user->img_path . '">'; } ?> <input type="file" name="upload_file"> </div> </li> <li><h4>Gender</h4>