Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 /** 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);
 }
Пример #4
0
 /**
  * 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') . '" />&nbsp; ' . $label_text;
         } else {
             $label_text = '<img class="lang-flag" src="' . \Uri::create('/admin/assets/img/lang/' . \CMF::lang() . '.png') . '" />&nbsp; ' . $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);
 }
Пример #5
0
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;
}
Пример #6
0
 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);
 }
Пример #7
0
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 
}
Пример #8
0
 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);
 }
Пример #9
0
 /**
  * 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'];
    ?>
Пример #11
0
 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);
 }
Пример #12
0
 
                <?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 ', ';
            }
Пример #13
0
 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);
 }
Пример #14
0
 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);
 }
Пример #15
0
    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);
    }
Пример #16
0
 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) . '" />';
 }
Пример #17
0
 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);
 }
Пример #18
0
 /**
  * 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;
 }
Пример #19
0
 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>
Пример #21
0
						</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);
Пример #22
0
 function e($string)
 {
     return Security::htmlentities($string);
 }
Пример #23
0
 /**
  * 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 = '&nbsp;&nbsp;&nbsp;&nbsp;', $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") . "\">&crarr;</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") . "\">&crarr;</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;
 }
Пример #24
0
 /**
  * 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;
 }
Пример #25
0
<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">&times;</button><?php 
    echo $form_status_message;
    ?>
</div>
        <?php 
}
?>
 
    </div>
    <?php 
echo \Extension\NoCsrf::generate();
Пример #26
0
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('&rsaquo;&nbsp;', $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> &middot;';
                isset($query['explain']['key']) and $return_output .= 'Key Used: <b>' . $query['explain']['key'] . '</b> &middot;';
                isset($query['explain']['type']) and $return_output .= 'Type: <b>' . $query['explain']['type'] . '</b> &middot;';
                isset($query['explain']['type']) and $return_output .= 'Rows: <b>' . $query['explain']['rows'] . '</b> &middot;';
            }
            $return_output .= 'Speed: <b>' . $query['time'] . '</b>';
            $query['duplicate'] and $return_output .= ' &middot; <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;
}
Пример #27
0
 /**
  * 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;
 }
Пример #28
0
 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);
 }
Пример #29
0
						</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>