$user_id = $my_app->get_param('user_id'); if (!empty($user_id)) { $usr = new phpos_users(); if (is_root() || is_admin()) { $usr->set_id_user($user_id); $usr->get_user_by_id(); echo helper_result('update_user'); echo $layout->title(txt('edit_user'), 'icon.png'); echo $layout->txtdesc(txt('dsc_users_edit_list')); $form = new phpos_forms(); echo $form->form_start('update_user', helper_ajax('section.edit_account.php'), array('app_params' => '')); $form->reload_after_submit(array('nowy')); $form->input('hidden', 'action', '', '', 'update_user'); echo $layout->column('50%'); $form->title(txt('user_login_data'), txt('all_fields_req'), ICONS . 'accounts/toolbar_edit.png'); $form->label('Login', $usr->get_user_login(), ''); //$form->condition('not_null', true , 'Password is empty'); //$form->condition('min', 6, 'Password must have min 6 chars'); //$form->condition('max', 30, 'Password can have max 30 chars'); $form->condition('match', 'user_new_pass2', txt('pass_not_match')); $form->input('password', 'user_new_pass', '<span style=color:#7e1414>' . txt('new_pass') . '</span>', txt('dsc_users_account_pass'), ''); //$form->condition('not_null', true , 'Password confirmation is empty'); $form->input('password', 'user_new_pass2', '<span style=color:#7e1414>' . txt('new_pass_c') . '</span>', txt('dsc_users_account_pass_c'), ''); $form->input('text', 'user_new_email', 'Email', txt('dsc_users_account_email'), $usr->get_user_email()); echo $form->render(); echo $layout->end('column'); echo $layout->column('50%'); $form->title(txt('usr_account_params'), '', ICONS . 'small_options.png'); $items = array('1' => txt('yes'), '0' => txt('no')); $form->radio('user_new_active', txt('active'), txt('dsc_users_account_active'), $items, $usr->get_is_active()); $items = array('1' => txt('user_user'), '2' => txt('user_admin'));
$html['icons'] .= '<div id="groups_shared_folders_' . $row['id'] . WIN_ID . '" title="<b>' . $row['title'] . '</b> ' . $row['desc'] . '" class="phpos_server_icon"><a href="javascript:void(0);" ondblclick="' . $action_open . '"><img src="' . ICONS . 'server/shared1.png" /></a><p><b>' . $row['title'] . '</b><br />' . string_cut($row['description'], 20) . '<br /><span class="desc">' . $user_info['user_login'] . '</span></p></div>'; } $html['icons'] .= $layout->area_end(); // right items $html['right_items_title'] = txt('explorer_right_group_users'); $html['right_items_desc'] = txt('explorer_right_group_users_desc'); $html['right_items_img'] = 'shared1.png'; //$group->get_group(); $users_in_group = $group->get_users_in_group(); $k = count($users_in_group); if ($k != 0) { foreach ($users_in_group as $grp_user) { $usr_data = new phpos_users(); $usr_data->set_id_user($grp_user['id_user']); $usr_data->get_user_by_id(); $right_item['name'] = $usr_data->get_user_login(); $right_item['onclick'] = link_action('shared', 'workgroup_id:' . $workgroup_id . ',workgroup_user_id:' . $grp_user['id_user'] . ',fs:local_files'); $right_item['icon'] = 'user.png'; $right_item['marked'] = false; if ($shared_id_user == $grp_user['id_user']) { $right_item['marked'] = true; } $explorer_right_items[] = $right_item; } } /* ================================================== */ } else { $html['icons'] = $layout->area_start(txt('shared_error')) . $layout->txtdesc(txt('st_shared')) . txt('shared_not_exists') . $layout->area_end(); } /* ================================================== */ } else {
} else { echo $layout->empty_list(); } echo $layout->tbl_end(); echo $layout->end('column'); echo $layout->column('33%'); echo $layout->subtitle(txt('groups_owner'), ICONS . 'workgroups.png'); echo $layout->txtdesc(txt('groups_own_desc')); $groups = new phpos_groups(); $group_ids = $groups->get_my_own_groups(); $c = count($group_ids); echo $layout->tbl_start(); $layout->td_classes(array('', '', 'tbl_grey')); if ($c != 0) { echo $layout->head(array('<img src="' . ICONS . 'workgroups.png" />' => '20%', txt('name') => '40%', txt('owner') => '40%')); for ($i = 0; $i < $c; $i++) { $g = new phpos_groups(); $g->set_id($group_ids[$i]['id']); $g->get_group(); $usr_count = $g->count_users(); $u = new phpos_users(); $u->set_id_user($group_ids[$i]['id_owner']); $u->get_user_by_id(); echo $layout->row(array($usr_count, '<a href="javascript:void(0);" onclick="' . helper_reload(array('section' => 'group_users', 'group_id' => $g->get_id())) . '">' . $g->get_title() . '</a>', $u->get_user_login()), $g->get_desc()); } } else { echo $layout->empty_list(); } echo $layout->tbl_end(); echo $layout->end('column'); echo $layout->clr();
echo $layout->txtdesc(txt('dsc_cp_groups_users_out')); // usrs in group $users_ids = $group->get_users_out_group(); $c = count($users_ids); if ($c != 0) { echo $layout->tbl_start(); echo $layout->head(array('<img src="' . ICONS . 'accounts/ico_admin.png" />' => '10%', 'Login' => '40%', txt('last_activity') => '30%', txt('action') => '30%')); for ($i = 0; $i < $c; $i++) { $u = new phpos_users(); $u->set_id_user($users_ids[$i]['id_user']); $u->get_user_by_id(); if ($u->get_last_activity() != 0) { $d = date('d.m.Y H:i:s', $u->get_last_activity()); } else { $d = txt('never'); } $action = helper_reload(array('section' => 'group_users', 'add_user_id' => $u->get_id_user())); echo $layout->row(array('<img src="' . ICONS . 'accounts/ico_admin.png" style="height:20px"/>', $u->get_user_login(), $d, $layout->button(txt('group_add_user'), $action, 'edit_add'))); } echo $layout->tbl_end(); } else { echo $layout->empty_list(); } echo $layout->end('column'); } else { winreload(WIN_ID, array('section' => 'list')); } ?>
function logged_login() { $my_user = new phpos_users(); $my_user->get_logged_user(); $login = $my_user->get_user_login(); return $login; }
$u_info->set_id_user($session_info['id_user']); $u_info->get_user_by_id(); $tip = '<b>UID:</b> ' . $session_info['id_user'] . '<br /><b>' . txt('logs_sessions_fulltime') . '</b> ' . date('d.m.Y H:i:s', intval($session_info['start_time'])) . ' - ' . date('d.m.Y H:i:s', intval($session_info['end_time'])); $usr_link = '<b>' . $u_info->get_user_login() . '</b> (UID: ' . $session_info['id_user'] . ')'; $action = helper_reload(array('section' => 'sessions', 'action' => 'delete_session', 'id_session' => $session_info['id_session'])); echo $layout->row(array($session_info['id_session'], date('d.m.Y H:i:s', intval($session_info['start_time'])), date('d.m.Y H:i:s', intval($session_info['end_time'])), $usr_link, $session_info['user_ip'], $session_info['user_browser'], $session_info['php_sessid'], $layout->button(txt('btn_delete'), $action, 'cancel')), $tip); } echo $layout->tbl_end(); } } else { // log session $sessions = new phpos_users(); if ($sessions->is_session_id($id_session)) { echo $layout->subtitle($txt['logs_section_sessions_view_title'], ICONS . 'logs/section_sessions.png'); echo $layout->txtdesc($txt['logs_section_sessions_view_desc']); echo $layout->tbl_start(); $layout->td_classes(array('')); echo $layout->head(array(txt('logs_section_sessions_tbl_id') => '5%', txt('logs_section_sessions_tbl_starttime') => '10%', txt('logs_section_sessions_tbl_endtime') => '10%', txt('logs_section_sessions_tbl_user') => '25%', txt('logs_section_sessions_tbl_ip') => '15%', txt('logs_section_sessions_tbl_browser') => '20%', txt('logs_section_sessions_tbl_sid') => '5%', txt('logs_section_sessions_tbl_action') => '10%')); $session_info = $sessions->get_session_id_data($id_session); $tip = '<b>UID:</b> ' . $session_info['id_user'] . '<br /><b>' . txt('logs_sessions_fulltime') . '</b> ' . date('d.m.Y H:i:s', intval($session_info['start_time'])) . ' - ' . date('d.m.Y H:i:s', intval($session_info['end_time'])); $u_info = new phpos_users(); $u_info->set_id_user($session_info['id_user']); $u_info->get_user_by_id(); $usr_link = '<b>' . $u_info->get_user_login() . '</b> (UID: ' . $session_info['id_user'] . ')'; $action = helper_reload(array('section' => 'sessions', 'action' => 'delete_session', 'id_session' => $session_info['id_session'])); echo $layout->row(array($session_info['id_session'], date('d.m.Y H:i:s', intval($session_info['start_time'])), date('d.m.Y H:i:s', intval($session_info['end_time'])), $usr_link, $session_info['user_ip'], $session_info['user_browser'], $session_info['php_sessid'], $layout->button(txt('btn_delete'), $action, 'cancel')), $tip); echo $layout->tbl_end(); } else { echo 'Session not exists in DB.'; } }
public function render_address_links() { $links = $this->get_address_links(); $c = count($links); $separator = '<img class="arrow" src="' . THEME_URL . 'icons/arrow_small_right.png">'; global $my_app; $tmp_shared_id = $my_app->get_param('tmp_shared_id'); if (!empty($tmp_shared_id)) { $shared = new phpos_shared(); $shared->set_id($tmp_shared_id); $shared->get_shared(); $shared_dir = $shared->get_folder_id(); } $in_shared = $my_app->get_param('in_shared'); /*.............................................. */ // If not in shared: if (!$in_shared) { if ($c != 0) { for ($i = 0; $i < $c; $i++) { $item = $this->filesystem->get_file_info($links[$i]); if ($item['id'] != $shared_dir) { if (is_root()) { $item = $this->root_homedir_address_parse($item); } $address .= '<a onclick="' . helper_reload(array('dir_id' => $item['id'])) . '" href="javascript:void(0);">' . $item['basename'] . '</a>' . $separator; } } } } $address_start = '<a onclick="' . helper_reload(array('dir_id' => $this->filesystem->get_root_directory_id())) . '" href="javascript:void(0);"><b>' . $this->filesystem->protocol_name . '</b></a>'; /*.............................................. */ if (APP_ACTION == 'my_server') { $address_start = '<a onclick="' . helper_reload(array('dir_id' => $this->filesystem->get_root_directory_id())) . '" href="javascript:void(0);"><b>' . txt('my_server') . '</b></a>'; } /*.............................................. */ if (APP_ACTION == 'cp') { $address_start = '<a onclick="' . helper_reload(array('dir_id' => $this->filesystem->get_root_directory_id())) . '" href="javascript:void(0);"><b>' . txt('control_panel') . '</b></a>'; } /*.............................................. */ if (APP_ACTION == 'shared') { $group = new phpos_groups(); $group_id = $my_app->get_param('workgroup_id'); if (!empty($group_id)) { $group->set_id($group_id); $group->get_group(); $group_user = new phpos_users(); $id_user = $my_app->get_param('workgroup_user_id'); $group_user->set_id_user($id_user); $group_user->get_user_by_id(); $address_start = '<a onclick="phpos.windowActionChange(\'' . WIN_ID . '\', \'workgroup\', \'workgroup_id:' . $group_id . ',fs:local_files\')" href="javascript:void(0);"><b>' . $group->get_title() . '</b></a>' . $separator . '<a onclick="phpos.windowActionChange(\'' . WIN_ID . '\', \'shared\', \'workgroup_id:' . $group_id . ',workgroup_user_id:' . $id_user . ',fs:local_files\')" href="javascript:void(0);"><b>' . $group_user->get_user_login() . '</b></a>'; } else { $id_user = logged_id(); $group_user = new phpos_users(); $group_user->set_id_user($id_user); $group_user->get_user_by_id(); $address_start = '<a onclick="phpos.windowActionChange(\'' . WIN_ID . '\', \'shared\', \'workgroup_id:0,fs:local_files\')" href="javascript:void(0);"><b>' . $group_user->get_user_login() . '</b></a>'; } } /*.............................................. */ if (APP_ACTION == 'workgroup') { $group = new phpos_groups(); $group_id = $my_app->get_param('workgroup_id'); if (!empty($group_id)) { $group->set_id($group_id); $group->get_group(); $address_start = '<a onclick="phpos.windowActionChange(\'' . WIN_ID . '\', \'workgroup\', \'workgroup_id:' . $group_id . ',fs:local_files\')" href="javascript:void(0);"><b>' . $group->get_title() . '</b></a>'; } else { $address_start = '<a onclick="phpos.windowActionChange(\'' . WIN_ID . '\', \'workgroup\', \'workgroup_id:0,fs:local_files\')" href="javascript:void(0);"><b>Workgroups</b></a>'; } } $in_shared = $my_app->get_param('in_shared'); $tmp_shared_id = $my_app->get_param('tmp_shared_id'); /*.............................................. */ if (APP_ACTION == 'index' && (defined('SHARED') || $in_shared)) { $group = new phpos_groups(); $group_id = $my_app->get_param('workgroup_id'); $group->set_id($group_id); $group->get_group(); $shared_id = $my_app->get_param('tmp_shared_id'); $shared = new phpos_shared(); $shared->set_id($shared_id); $shared->get_shared(); $group_user = new phpos_users(); $id_user = $shared->get_id_user(); $group_user->set_id_user($id_user); $group_user->get_user_by_id(); $address_start = '<a onclick="phpos.windowActionChange(\'' . WIN_ID . '\', \'shared\', \'workgroup_id:' . $group_id . ',workgroup_user_id:' . $id_user . ',fs:local_files\')" href="javascript:void(0);"><b>' . $group_user->get_user_login() . '</b></a>' . $separator . '<a onclick="phpos.windowActionChange(\'' . WIN_ID . '\', \'index\', \'shared_id:' . $shared_id . ',in_shared:1,fs:local_files\')" href="javascript:void(0);"><b>' . $shared->get_title() . '</b></a>'; } /*.............................................. */ //if(APP_ACTION != 'index') $address = ''; $address_bar = $address_start . $separator . $address; $ftp_id = $my_app->get_param('ftp_id'); if (!empty($ftp_id)) { $ftp = new phpos_ftp(); $ftp->set_id($ftp_id); $ftp->get_ftp(); $address_bar = '<a onclick="phpos.windowActionChange(\'' . WIN_ID . '\', \'index\', \'dir_id:.,ftp_id:' . $ftp_id . ',in_shared:1,fs:ftp\')" href="javascript:void(0);"><b>' . $ftp->get_login() . '@' . $ftp->get_host() . '</b></a>' . $separator; } return $address_bar; }
<td><b>note</b></td> <td><b>X</b></td> </tr>'; for ($i = 0; $i < $c; $i++) { $u = new phpos_users(); $u->set_id_user($users_ids[$i]); $u->get_user_by_id(); $id = $u->get_id_user(); $class = 'phpos_table_row1'; if ($i % 2 == 0) { $class = 'phpos_table_row2'; } echo '<tr class="' . $class . '"> <td>' . $users_ids[$i] . '</td> <td>' . $u->get_id_user() . '</td> <td>' . $u->get_user_login() . '</td> <td>' . $u->get_user_pass() . '</td> <td>' . $u->get_user_email() . '</td> <td>' . $u->get_user_type() . '</td> <td>' . $u->get_id_group() . '</td> <td>' . $u->get_is_active() . '</td> <td>' . $u->get_created_at() . '</td> <td>' . $u->get_last_login() . '</td> <td>' . $u->get_last_activity() . '</td> <td>' . $u->get_note() . '</td> <td><a href="javascript:void(0);" onclick="' . helper_reload(array('delete_id' => $id)) . '"><span style="color:red">(x)</span></a></td> </tr>'; unset($u); } echo '</table>'; }
echo $layout->column('50%'); $form->condition('not_null', true, txt('login_empty')); $form->input('text', 'msg_title', txt('messager_form_title'), txt('messager_form_title_desc'), $start_title); $form->status(); echo $form->render(); echo $layout->end('column'); echo $layout->column('50%'); $users = new phpos_users(); $users_ids = $users->get_users('ALL'); $i = 0; $my_id = logged_id(); foreach ($users_ids as $id) { $usr_info = new phpos_users(); $usr_info->set_id_user($id); $usr_info->get_user_by_id(); $items[$id] = $usr_info->get_user_login(); if ($my_id == $id) { $items[$id] = txt('messager_tbl_me'); } $i++; } $reply_id = $my_app->get_param('reply_id'); $start_user_to = ''; $start_title = ''; $start_msg = ''; if ($reply_id !== null) { $msg = new phpos_messages(); $reply = $msg->get_msg($reply_id); $start_user_to = $reply['id_user_from']; $start_title = 'Re: ' . $reply['title']; $start_msg = '<br /><br />------------------------<br /><b>Reply for message:</b><br />Sent: ' . date('Y.m.d H:i:s', $reply['sended_at']) . '<br /><i>' . $reply['msg'] . '</i><br />------------------------';
$c = $msg->count_sended(); echo $layout->subtitle(txt('messager_sended_title'), MY_RESOURCES_URL . 'msg_sended.png'); echo $layout->txtdesc(txt('messager_sended_desc')); echo $layout->tbl_start(); echo $layout->head(array('' => '5%', txt('messager_tbl_message') => '40%', '<img style="display:inline-block; vertical-align:middle" src="' . MY_RESOURCES_URL . 'time_icon.png" /> ' . txt('messager_tbl_sended') => '15%', '<img style="display:inline-block; vertical-align:middle" src="' . MY_RESOURCES_URL . 'time_icon.png" /> ' . txt('messager_tbl_readed') => '15%', '<img style="display:inline-block; vertical-align:middle" src="' . MY_RESOURCES_URL . 'user_icon.png" />' . txt('messager_tbl_to') => '15%', txt('messager_tbl_actions') => '15%')); if ($c != 0) { $records = $msg->get_sended(); foreach ($records as $row) { $icon = MY_RESOURCES_URL . 'readed_icon.png'; $readed = date('Y.m.d H:i', $row['readed_at']); $title = $row['title']; if (!$msg->is_readed($row['id'])) { $icon = MY_RESOURCES_URL . 'unreaded_icon.png'; $title = '<b>' . $row['title'] . '</b>'; $readed = txt('messager_tbl_not_yet'); } $delete_action = "\n\t\t\t\$.messager.confirm('" . txt('delete') . "', '" . txt('delete_confirm') . "?', function(r){\n\t\t\tif (r){\n\t\t\t\t" . helper_reload(array('delete_sended_id' => $row['id'])) . "\n\t\t\t}\n\t\t\t});\t"; //helper_reload(array('delete_sended_id' => $row['id'])); $u = new phpos_users(); $u->set_id_user($row['id_user_to']); $u->get_user_by_id(); $row_items = array('<img src="' . $icon . '" />', '<a href="javascript:void(0);" onclick="' . helper_reload(array('msg_id' => $row['id'])) . '">' . $title . '</a>', date('Y.m.d H:i', $row['sended_at']), $readed, $u->get_user_login(), $layout->button(txt('delete'), $delete_action, 'cancel')); echo $layout->row($row_items, string_cut(strip_tags($row['msg'], '<br>'), 100)); } } else { echo $layout->empty_list(); } echo $layout->tbl_end(); } else { include MY_APP_DIR . 'views/view_message.php'; }
public function create_log($row) { if (!empty($row)) { $data = $this->get_log_file_data(); $my_id = logged_id(); $u = new phpos_users(); $u->set_id_user($my_id); $u->get_user_by_id(); $id_session = $u->get_my_session_id(); $log = 'LOG| date: ' . date('Y.m.d H:i:s') . '; timestamp: ' . time() . '; UID: ' . $my_id . '; ULOGIN: '******'; IP: ' . getIP() . '; ACTION: {' . str_replace(';', ',', strip_tags($row)) . '}; IDSESSION: ' . $id_session; $new_data = $log . ';;' . PHP_EOL . $data; $this->log_file_data = $new_data; if ($this->save_log_file()) { return true; } } }
} else { echo $layout->empty_list(); } echo $layout->end('column'); echo $layout->column('33%'); echo $layout->subtitle(txt('banned_users'), ICONS . 'status_error.png'); echo $layout->txtdesc(txt('dsc_users_list_banned')); $users = new phpos_users(); $how_many = $users->count_users('INACTIVE'); if ($how_many != 0) { $users_ids = $users->get_users('INACTIVE'); $c = count($users_ids); echo $layout->tbl_start(); echo $layout->head(array('<img src="' . ICONS . 'accounts/small_users.png" />' => '10%', 'Login' => '50%', txt('last_activity') => '40%')); for ($i = 0; $i < $c; $i++) { $u = new phpos_users(); $u->set_id_user($users_ids[$i]); $u->get_user_by_id(); if ($u->get_last_activity() != 0) { $d = date('d.m.Y H:i:s', $u->get_last_activity()); } else { $d = txt('never'); } echo $layout->row(array('<img src="' . ICONS . 'accounts/small_users.png" style="height:20px"/>', '<a href="javascript:void(0);" onclick="' . helper_reload(array('section' => 'edit_account', 'user_id' => $u->get_id_user())) . '">' . $u->get_user_login() . '</a>', $d), txt('dsc_users_click')); } echo $layout->tbl_end(); } else { echo $layout->empty_list(); } echo $layout->end('column'); echo $layout->clr();
GitHUB: https://github.com/phpos/ File version: 1.0.0, 2013.10.08 ********************************** */ if (!defined('PHPOS')) { die; } global $footer; echo $layout->back_button(null, helper_reload(array('msg_id' => null)), null, null); $msg = new phpos_messages(); $msg_data = $msg->get_msg($my_app->get_param('msg_id')); $form = new phpos_forms(); //$form->onsuccess(helper_reload(array('section' => 'sended'))); echo $form->form_start('', '', array('app_params' => '')); $form->texteditor('msg_body', null, null, $msg_data['msg']); if ($msg->is_to_me($my_app->get_param('msg_id'))) { $u = new phpos_users(); $u->set_id_user($msg_data['id_user_from']); $u->get_user_by_id(); $authors = '<span style="color:black; font-weight:bold;font-size:16px">' . txt('messager_tbl_from') . ': ' . $u->get_user_login() . ' </span>'; $form->button(txt('messager_btn_reply'), helper_reload(array('section' => 'new', 'reply_id' => $my_app->get_param('msg_id'))), 'reply'); } else { $u = new phpos_users(); $u->set_id_user($msg_data['id_user_to']); $u->get_user_by_id(); $authors = '<span style="color:black; font-weight:bold;font-size:16px">' . txt('messager_tbl_to') . ': ' . $u->get_user_login() . ' </span>'; } $footer = '<img src="' . MY_RESOURCES_URL . 'msg2.png" />' . $authors . ' <b style="padding-left:30px;color:black">' . txt('messager_sent') . ':</b> ' . date('Y.m.d. H:i', $msg_data['sended_at']); echo $form->render(); echo $form->form_end();
echo $items; ?> </div> <div id="phpos_startmenu_layout_right" data-options="region:'center',title:''"> <div class="user_area"><img src="<?php echo PHPOS_WEBROOT_URL; ?> _phpos/themes/default/icons/user_medium.png"><br /><span class="user_name"><?php $user = new phpos_users(); $user->get_logged_user(); echo $user->get_user_login(); ?> </span><br /><span class="user_type"><?php $user_type = $user->get_user_type(); switch ($user_type) { case '1': $usr_str = txt('user_user'); break; case '2': $usr_str = txt('user_admin'); break; case '3': $usr_str = '<span style="color:#FFF;background-color:#c91b1f;font-weight:bold;padding:2px;margin:2px">' . txt('user_root') . '</span>'; break; } echo $usr_str;
$ftp = new phpos_ftp(); $ftp_ids = $ftp->get_all(); $c = count($ftp_ids); if ($c != 0) { echo $layout->tbl_start(); $layout->td_classes(array('', '', 'tbl_grey')); echo $layout->head(array('<img src="' . ICONS . 'server/ftp.png" />' => '20%', txt('ftp_account') => '40%', txt('ftp_user') => '40%')); for ($i = 0; $i < $c; $i++) { $f = new phpos_ftp(); $f->set_id($ftp_ids[$i]['id']); $f->get_ftp(); //$usr_count = $f->count_users(); $u = new phpos_users(); $u->set_id_user($f->get_id_user()); $u->get_user_by_id(); echo $layout->row(array('<img src="' . ICONS . 'server/ftp.png" style="height:20px"/>', '<a href="javascript:void(0);" onclick="' . helper_reload(array('section' => 'edit_account', 'ftp_id' => $f->get_id())) . '">' . $f->get_title() . '</a>', $u->get_user_login()), $f->get_desc()); } echo $layout->tbl_end(); } else { echo $layout->empty_list(); } echo $layout->end('column'); } echo $layout->column('33%'); echo $layout->subtitle(txt('ftp_public'), ICONS . 'server/ftp.png'); if (is_root() || is_admin()) { echo $layout->txtdesc(txt('dsc_ftp_list_public')); } else { echo $layout->txtdesc(txt('dsc_ftp_list_public_user')); } $ftp = new phpos_ftp();