$sub_tabs['add_multiple_smilies'] = array('title' => $lang->add_multiple_smilies, 'link' => "index.php?module=config-smilies&action=add_multiple"); $sub_tabs['mass_edit'] = array('title' => $lang->mass_edit, 'link' => "index.php?module=config-smilies&action=mass_edit", 'description' => $lang->mass_edit_desc); $page->output_nav_tabs($sub_tabs, 'mass_edit'); $form = new Form("index.php?module=config-smilies&action=mass_edit", "post", "mass_edit"); if ($errors) { $page->output_inline_error($errors); } else { $mybb->input['path'] = 'images/smilies/'; $mybb->input['showclickable'] = 1; } if (!$mybb->input['disporder']) { $query = $db->simple_select("smilies", "max(disporder) as dispordermax"); $mybb->input['disporder'] = $db->fetch_field($query, "dispordermax") + 1; } $form_container = new FormContainer($lang->manage_smilies); $form_container->output_row_header($lang->image, array("class" => "align_center", 'width' => '1')); $form_container->output_row_header($lang->name); $form_container->output_row_header($lang->text_replace, array('width' => '20%')); $form_container->output_row_header($lang->order, array('width' => '5%')); $form_container->output_row_header($lang->mass_edit_show_clickable, array("width" => 165)); $form_container->output_row_header($lang->smilie_delete, array("class" => "align_center", 'width' => '5%')); $query = $db->simple_select("smilies", "*", "", array('order_by' => 'disporder')); while ($smilie = $db->fetch_array($query)) { $smilie['image'] = str_replace("{theme:imgdir}", $theme['imgdir'], $smilie['image']); if (my_strpos($smilie['image'], "p://") || substr($smilie['image'], 0, 1) == "/") { $image = $smilie['image']; } else { $image = "../" . $smilie['image']; } $form_container->output_cell("<img src=\"{$image}\" alt=\"\" />", array("class" => "align_center", "width" => 1)); $form_container->output_cell($form->generate_text_box("name[{$smilie['sid']}]", $smilie['name'], array('id' => 'name', 'style' => 'width: 98%')));
while ($groupcount = $db->fetch_array($query)) { $secondaryusers[$groupcount['gid']] = $groupcount['users']; } $query = $db->query("\n\t\tSELECT g.gid, COUNT(r.uid) AS users\n\t\tFROM " . TABLE_PREFIX . "joinrequests r\n\t\tLEFT JOIN " . TABLE_PREFIX . "usergroups g ON (g.gid=r.gid)\n\t\tGROUP BY g.gid\n\t"); $joinrequests = array(); while ($joinrequest = $db->fetch_array($query)) { $joinrequests[$joinrequest['gid']] = $joinrequest['users']; } // Fetch group leaders $leaders = array(); $query = $db->query("\n\t\tSELECT u.username, u.uid, l.gid\n\t\tFROM " . TABLE_PREFIX . "groupleaders l\n\t\tINNER JOIN " . TABLE_PREFIX . "users u ON (u.uid=l.uid)\n\t\tORDER BY u.username ASC\n\t"); while ($leader = $db->fetch_array($query)) { $leaders[$leader['gid']][] = build_profile_link($leader['username'], $leader['uid'], "_blank"); } $form_container = new FormContainer($lang->user_groups); $form_container->output_row_header($lang->group); $form_container->output_row_header($lang->number_of_users, array("class" => "align_center", 'width' => '75')); $form_container->output_row_header($lang->order, array("class" => "align_center", 'width' => '5%')); $form_container->output_row_header($lang->controls, array("class" => "align_center")); $query = $db->simple_select("usergroups", "*", "", array('order_by' => 'disporder')); while ($usergroup = $db->fetch_array($query)) { if ($usergroup['type'] > 1) { $icon = "<img src=\"styles/default/images/icons/custom.png\" alt=\"{$lang->custom_user_group}\" style=\"vertical-align: middle;\" />"; } else { $icon = "<img src=\"styles/default/images/icons/default.png\" alt=\"{$lang->default_user_group}\" style=\"vertical-align: middle;\" />"; } $leaders_list = ''; if (isset($leaders[$usergroup['gid']])) { $leaders_list = "<br />{$lang->group_leaders}: " . implode($lang->comma, $leaders[$usergroup['gid']]); } $join_requests = '';
if (count($icons) == 0) { $errors[] = $lang->error_no_images; } if (!$errors) { // We have no errors so let's proceed! $page->add_breadcrumb_item($lang->add_multiple_post_icons); $page->output_header($lang->post_icons . " - " . $lang->add_multiple_post_icons); $sub_tabs['manage_icons'] = array('title' => $lang->manage_post_icons, 'link' => "index.php?module=config/post_icons"); $sub_tabs['add_icon'] = array('title' => $lang->add_post_icon, 'link' => "index.php?module=config/post_icons&action=add"); $sub_tabs['add_multiple'] = array('title' => $lang->add_multiple_post_icons, 'link' => "index.php?module=config/post_icons&action=add_multiple", 'description' => $lang->add_multiple_post_icons_desc); $page->output_nav_tabs($sub_tabs, 'add_multiple'); $form = new Form("index.php?module=config/post_icons&action=add_multiple", "post", "add_multiple"); echo $form->generate_hidden_field("step", "2"); echo $form->generate_hidden_field("pathfolder", $path); $form_container = new FormContainer($lang->add_multiple_post_icons); $form_container->output_row_header($lang->image, array("class" => "align_center", 'width' => '10%')); $form_container->output_row_header($lang->name); $form_container->output_row_header($lang->add, array("class" => "align_center", 'width' => '5%')); foreach ($icons as $key => $file) { $ext = get_extension($file); $find = str_replace("." . $ext, "", $file); $name = ucfirst($find); $form_container->output_cell("<img src=\"../" . $path . $file . "\" alt=\"\" /><br /><small>{$file}</small>", array("class" => "align_center", "width" => 1)); $form_container->output_cell($form->generate_text_box("name[{$file}]", $name, array('id' => 'name', 'style' => 'width: 98%'))); $form_container->output_cell($form->generate_check_box("include[{$file}]", 1, "", array('checked' => 1)), array("class" => "align_center")); $form_container->construct_row(); } if ($form_container->num_rows() == 0) { flash_message($lang->error_no_images, 'error'); admin_redirect("index.php?module=config/post_icons&action=add_multiple"); }
$form_container->end(); $buttons = array(); $buttons[] = $form->generate_submit_button($lang->update_forum_permissions); $buttons[] = $form->generate_reset_button($lang->reset); $form->output_submit_wrapper($buttons); // Write in our JS based field selector echo "<script type=\"text/javascript\">\n<!--\n"; foreach ($ids as $id) { echo "\$(function() { QuickPermEditor.init(" . $id . ") });\n"; } echo "// -->\n</script>\n"; echo "</div>\n"; $form->end(); echo "<div id=\"tab_moderators\">\n"; $form_container = new FormContainer($lang->sprintf($lang->moderators_assigned_to, $forum_cache[$fid]['name'])); $form_container->output_row_header($lang->name, array('width' => '75%')); $form_container->output_row_header($lang->controls, array("class" => "align_center", 'style' => 'width: 200px', 'colspan' => 2)); $query = $db->query("\n\t\t\tSELECT m.mid, m.id, m.isgroup, u.username, g.title\n\t\t\tFROM " . TABLE_PREFIX . "moderators m\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (m.isgroup='0' AND m.id=u.uid)\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "usergroups g ON (m.isgroup='1' AND m.id=g.gid)\n\t\t\tWHERE fid='{$fid}'\n\t\t\tORDER BY m.isgroup DESC, u.username, g.title\n\t\t"); while ($moderator = $db->fetch_array($query)) { if ($moderator['isgroup']) { $moderator['img'] = "<img src=\"styles/{$page->style}/images/icons/group.png\" alt=\"{$lang->group}\" title=\"{$lang->group}\" />"; $form_container->output_cell("{$moderator['img']} <a href=\"index.php?module=user-groups&action=edit&gid={$moderator['id']}\">" . htmlspecialchars_uni($moderator['title']) . " ({$lang->usergroup} {$moderator['id']})</a>"); $form_container->output_cell("<a href=\"index.php?module=forum-management&action=editmod&mid={$moderator['mid']}\">{$lang->edit}</a>", array("class" => "align_center")); $form_container->output_cell("<a href=\"index.php?module=forum-management&action=deletemod&id={$moderator['id']}&isgroup=1&fid={$fid}&my_post_key={$mybb->post_code}\" onclick=\"return AdminCP.deleteConfirmation(this, '{$lang->confirm_moderator_deletion}')\">{$lang->delete}</a>", array("class" => "align_center")); } else { $moderator['img'] = "<img src=\"styles/{$page->style}/images/icons/user.png\" alt=\"{$lang->user}\" title=\"{$lang->user}\" />"; $form_container->output_cell("{$moderator['img']} <a href=\"index.php?module=user-users&action=edit&uid={$moderator['id']}\">" . htmlspecialchars_uni($moderator['username']) . "</a>"); $form_container->output_cell("<a href=\"index.php?module=forum-management&action=editmod&mid={$moderator['mid']}\">{$lang->edit}</a>", array("class" => "align_center")); $form_container->output_cell("<a href=\"index.php?module=forum-management&action=deletemod&id={$moderator['id']}&isgroup=0&fid={$fid}&my_post_key={$mybb->post_code}\" onclick=\"return AdminCP.deleteConfirmation(this, '{$lang->confirm_moderator_deletion}')\">{$lang->delete}</a>", array("class" => "align_center")); } $form_container->construct_row();
$form_container->output_row($lang->bam_form_pinned, $lang->bam_form_pinned_desc, $form->generate_yes_no_radio('pinned', 0)); $buttons[] = $form->generate_submit_button($lang->bam_form_add_submit); $form_container->end(); $form->output_submit_wrapper($buttons); $form->end(); echo "<br />"; } if (empty($mybb->input['action'])) { // list announcements require_once MYBB_ROOT . "/inc/class_parser.php"; $parser = new postParser(); $parser_options = array('allow_html' => 'no', 'allow_mycode' => 'yes', 'allow_smilies' => 'yes', 'allow_imgcode' => 'yes', 'filter_badwords' => 'yes', 'nl2br' => 'yes'); $form_t = new Form("index.php?module=config-bam", "post"); $table = new FormContainer($lang->bam_manage); echo $form_t->generate_hidden_field("action", "order"); $table->output_row_header($lang->bam_manage_announcement, array('width' => '62%')); $table->output_row_header($lang->bam_manage_class, array('width' => '12%')); $table->output_row_header($lang->bam_manage_order, array('width' => '12%')); $table->output_row_header($lang->bam_manage_actions, array('width' => '14%', 'colspan' => 3)); $query = $db->query("\n\t\t\tSELECT *\n\t\t\tFROM " . TABLE_PREFIX . "bam\n\t\t\tORDER BY pinned DESC, disporder ASC, PID ASC\n\t\t"); $data = array(); $count = 0; while ($querydata = $db->fetch_array($query)) { if ($querydata['link'] != null) { $data[$count]['announcement'] = $parser->parse_message("[url=" . $querydata['link'] . "]" . html_entity_decode($querydata['announcement']) . "[/url]", $parser_options); } else { $data[$count]['announcement'] = $parser->parse_message(html_entity_decode($querydata['announcement']), $parser_options); // parse bbcode } $data[$count]['PID'] = $querydata['PID']; $data[$count]['class'] = $querydata['class'];
acp_rebuild_poll_counters(); } else { $plugins->run_hooks("admin_tools_recount_rebuild_stats"); $cache->update_stats(); // Log admin action log_admin_action("stats"); flash_message($lang->success_rebuilt_forum_stats, 'success'); admin_redirect("index.php?module=tools-recount_rebuild"); } } $page->output_header($lang->recount_rebuild); $sub_tabs['recount_rebuild'] = array('title' => $lang->recount_rebuild, 'link' => "index.php?module=tools-recount_rebuild", 'description' => $lang->recount_rebuild_desc); $page->output_nav_tabs($sub_tabs, 'recount_rebuild'); $form = new Form("index.php?module=tools-recount_rebuild", "post"); $form_container = new FormContainer($lang->recount_rebuild); $form_container->output_row_header($lang->name); $form_container->output_row_header($lang->data_per_page, array('width' => 50)); $form_container->output_row_header(" "); $form_container->output_cell("<label>{$lang->rebuild_forum_counters}</label><div class=\"description\">{$lang->rebuild_forum_counters_desc}</div>"); $form_container->output_cell($form->generate_numeric_field("forumcounters", 50, array('style' => 'width: 150px;', 'min' => 0))); $form_container->output_cell($form->generate_submit_button($lang->go, array("name" => "do_rebuildforumcounters"))); $form_container->construct_row(); $form_container->output_cell("<label>{$lang->rebuild_thread_counters}</label><div class=\"description\">{$lang->rebuild_thread_counters_desc}</div>"); $form_container->output_cell($form->generate_numeric_field("threadcounters", 500, array('style' => 'width: 150px;', 'min' => 0))); $form_container->output_cell($form->generate_submit_button($lang->go, array("name" => "do_rebuildthreadcounters"))); $form_container->construct_row(); $form_container->output_cell("<label>{$lang->rebuild_poll_counters}</label><div class=\"description\">{$lang->rebuild_poll_counters_desc}</div>"); $form_container->output_cell($form->generate_numeric_field("pollcounters", 500, array('style' => 'width: 150px;', 'min' => 0))); $form_container->output_cell($form->generate_submit_button($lang->go, array("name" => "do_rebuildpollcounters"))); $form_container->construct_row(); $form_container->output_cell("<label>{$lang->recount_user_posts}</label><div class=\"description\">{$lang->recount_user_posts_desc}</div>");
echo $form->generate_hidden_field("lang", $editlang); echo $form->generate_hidden_field("editwith", $editwith); echo $form->generate_hidden_field("inadmin", intval($mybb->input['inadmin'])); if ($errors) { $page->output_inline_error($errors); } // Check if file is writable, before allowing submission $no_write = null; if (!is_writable($editfile)) { $no_write = 1; $page->output_alert($lang->alert_note_cannot_write); } $form_container = new FormContainer(htmlspecialchars_uni($file)); if ($editwithfile) { // Editing with another file $form_container->output_row_header($languages[$editwith]); $form_container->output_row_header($languages[$editlang]); // Make each editing row foreach ($editvars as $key => $value) { if (my_strtolower($langinfo['charset']) == "utf-8") { $withvars[$key] = preg_replace_callback("#%u([0-9A-F]{1,4})#i", create_function('$matches', 'return dec_to_utf8(hexdec($matches[1]));'), $withvars[$key]); $value = preg_replace_callback("#%u([0-9A-F]{1,4})#i", create_function('$matches', 'return dec_to_utf8(hexdec($matches[1]));'), $value); } else { $withvars[$key] = preg_replace_callback("#%u([0-9A-F]{1,4})#i", create_function('$matches', 'return dec_to_utf8(hexdec($matches[1]));'), $withvars[$key]); $value = preg_replace_callback("#%u([0-9A-F]{1,4})#i", create_function('$matches', 'return "&#".hexdec($matches[1]).";";'), $value); } $form_container->output_row($key, "", $form->generate_text_area("", $withvars[$key], array('disabled' => true, 'rows' => 2, 'style' => "width: 98%; padding: 4px;")), "", array('width' => '50%', 'skip_construct' => true)); $form_container->output_row($key, "", $form->generate_text_area("edit[{$key}]", $value, array('id' => 'lang_' . $key, 'rows' => 2, 'style' => "width: 98%; padding: 4px;")), 'lang_' . $key, array('width' => '50%')); } } else { // Editing individually
function tslink_admin() { global $db, $lang, $mybb, $page, $run_module, $action_file, $plugins, $cache; $lang->load('tslink'); if ($run_module == 'user' && $action_file == 'tslink') { $page->add_breadcrumb_item($lang->tslink_plugin_name, 'index.php?module=tslink'); if ($mybb->input['action'] == 'tslink_changestatus') { $mybb_uid = intval($mybb->input['uid']); $changeto = intval($mybb->input['changeto']); $db->query('UPDATE ' . TABLE_PREFIX . "users SET memberstatus= '" . $changeto . "' WHERE uid='" . $mybb_uid . "'"); $queryUser = $db->simple_select('users', 'username, lastip', "uid='{$mybb_uid}'"); $bin_ip_in_db = $db->fetch_field($queryUser, 'lastip'); $givenip = my_inet_ntop($db->unescape_binary($bin_ip_in_db)); $forUser = $db->fetch_field($queryUser, 'username'); // If there's an ip of the user in de database, update the unique id's in the database if (!empty($givenip)) { tslink_log("=============================================================\n=================== " . date('d-m-Y H:i:s') . " =====================\n=============================================================\n", $forUser); tslink_log('Started on AdminCP by ' . $mybb->user['username'] . ' - IP address of user available (' . $givenip . ') - doing tslink_update_uids & tslink_update_groups', $forUser); $tslink_update_uids_results = tslink_update_uids($givenip); tslink_log($tslink_update_uids_results, $forUser); $message = $lang->tslink_status_changed; } // If there's no lastip of the user in the database - dont try to update the unique id's in the database if (empty($givenip)) { tslink_log("=============================================================\n=================== " . date('d-m-Y H:i:s') . " =====================\n=============================================================\n", $forUser); tslink_log('Started on AdminCP ' . $mybb->user['username'] . ' - IP address of user NOT available - only doing tslink_update_groups to update previously registered TS uids', $forUser); $tslink_update_groups_results = tslink_update_groups($mybb_uid); tslink_log($tslink_update_groups_results, $forUser); $message = $lang->tslink_status_changed; } admin_redirect('index.php?module=user-tslink'); } if (!$mybb->input['action'] || $mybb->input['action'] == 'conntest') { $page->output_header($lang->tslink); $sub_tabs['tslink'] = ['title' => $lang->tslink_tab_home, 'link' => 'index.php?module=user-tslink', 'description' => $lang->tslink_admin_tab_home_desc]; $sub_tabs['tslink-conntest'] = ['title' => $lang->tslink_admin_tsinfo_title, 'link' => 'index.php?module=user-tslink&action=conntest', 'description' => $lang->tslink_admin_tsinfo_desc]; } if ($mybb->input['action'] == 'conntest') { require __DIR__ . '/config.php'; $page->output_nav_tabs($sub_tabs, 'tslink-conntest'); //build a new ts3admin object $ts3 = new ts3admin($ts3_server, $ts3_query_port); if ($ts3->getElement('success', $ts3->connect())) { //login as serveradmin $ts3->login($ts3_username, $ts3_password); //select teamspeakserver $ts3->selectServer($ts3_server_port); // Set displayed name in TS to given $ts3->setName($ts3_nickname); $form = new Form('index.php?module=user-tslink&action=conntest', 'post'); $form_container = new FormContainer($lang->tslink_admin_tsinfo_full_title); $form_container->output_row($lang->tslink_admin_server_version, $ts3->version()['data']['version']); $form_container->output_row($lang->tslink_admin_server_platform, $ts3->version()['data']['platform']); $form_container->output_row($lang->tslink_admin_server_online_clients, $ts3->serverInfo()['data']['virtualserver_clientsonline'] . '/' . $ts3->serverInfo()['data']['virtualserver_maxclients']); $form_container->end(); $form->end(); } else { echo 'Connection could not be established.'; } /* * This code retuns all errors from the debugLog */ if (count($ts3->getDebugLog()) > 0) { foreach ($ts3->getDebugLog() as $logEntry) { echo '<script>alert("' . $logEntry . '");</script>'; } } $page->output_footer(); } if (!$mybb->input['action']) { $page->output_nav_tabs($sub_tabs, 'tslink'); $form = new Form('index.php?module=user-tslink', 'post'); $form_container = new FormContainer($lang->tslink_admin_table_heading_users); $form_container->output_row_header($lang->tslink_admin_row_username, ['class' => 'align_left', width => '50%']); $form_container->output_row_header($lang->tslink_admin_row_status, ['class' => 'align_center']); $form_container->output_row_header($lang->tslink_admin_row_options, ['class' => 'align_center']); $form_container->output_row_header($lang->tslink_admin_row_options, ['class' => 'align_center']); $query = $db->simple_select('users', 'uid, username, memberstatus', '', ['order_by' => 'username', 'order_dir' => 'ASC']); while ($users = $db->fetch_array($query)) { $form_container->output_cell("<div style=\"\"><strong>{$users['username']}</strong></div>"); if ($users['memberstatus'] == '0') { $form_container->output_cell('<div style=""><strong>Member</strong></div>', ['class' => 'align_center']); $form_container->output_cell("<a href=\"index.php?module=user-tslink&action=tslink_changestatus&uid={$users['uid']}&changeto=1\">{$lang->tslink_admin_row_changestatus1}</a>", ['class' => 'align_center']); $form_container->output_cell("<a href=\"index.php?module=user-tslink&action=tslink_changestatus&uid={$users['uid']}&changeto=2\">{$lang->tslink_admin_row_changestatus2}</a>", ['class' => 'align_center']); } elseif ($users['memberstatus'] == '1') { $form_container->output_cell('<div style=""><strong>Donating Member</strong></div>', ['class' => 'align_center']); $form_container->output_cell("<a href=\"index.php?module=user-tslink&action=tslink_changestatus&uid={$users['uid']}&changeto=0\">{$lang->tslink_admin_row_changestatus0}</a>", ['class' => 'align_center']); $form_container->output_cell("<a href=\"index.php?module=user-tslink&action=tslink_changestatus&uid={$users['uid']}&changeto=2\">{$lang->tslink_admin_row_changestatus2}</a>", ['class' => 'align_center']); } elseif ($users['memberstatus'] == '2') { $form_container->output_cell('<div style=""><strong>VIP Member</strong></div>', ['class' => 'align_center']); $form_container->output_cell("<a href=\"index.php?module=user-tslink&action=tslink_changestatus&uid={$users['uid']}&changeto=0\">{$lang->tslink_admin_row_changestatus0}</a>", ['class' => 'align_center']); $form_container->output_cell("<a href=\"index.php?module=user-tslink&action=tslink_changestatus&uid={$users['uid']}&changeto=1\">{$lang->tslink_admin_row_changestatus1}</a>", ['class' => 'align_center']); } $form_container->construct_row(); } $form_container->end(); $form->end(); $page->output_footer(); } } }
}); </script>'; /* Save new Order */ } elseif ($mybb->input['action'] == "order") { foreach ($mybb->input['disporder'] as $ID => $Sort) { $db->update_query("announcement", array("Sort" => $Sort), "ID='{$ID}'"); } flash_message($lang->announcement_order_success, 'success'); admin_redirect("index.php?module=" . MODULE); /* Show a list of announcements */ } else { $page->output_header($lang->announcement); generate_tabs("list"); $form = new Form("index.php?module=" . MODULE . "&action=order", "post"); $form_container = new FormContainer($lang->announcement); $form_container->output_row_header($lang->announcement_simple, array("colspan" => 2)); $form_container->output_row_header($lang->order, array('class' => 'align_center')); $form_container->output_row_header($lang->announcement_location, array('class' => 'align_center')); $form_container->output_row_header($lang->controls, array("colspan" => 2, 'class' => 'align_center')); $query = $db->simple_select("announcement", "ID, Sort, Announcement, Global, Enabled", "", array("order_by" => "Sort")); if ($db->num_rows($query) > 0) { while ($announcement = $db->fetch_array($query)) { if ($announcement['Enabled']) { $icon = "<img src=\"styles/{$page->style}/images/icons/bullet_on.png\" alt=\"(Active)\" title=\"Active Announcement\" /> "; } else { $icon = "<img src=\"styles/{$page->style}/images/icons/bullet_off.png\" alt=\"(Inactive)\" title=\"Inactive Announcement\" /> "; } $form_container->output_cell("<a href=\"index.php?module=" . MODULE . "&action=enable&aid={$announcement['ID']}\">{$icon}</a>", array('width' => '2%')); $form_container->output_cell($announcement['Announcement']); $form_container->output_cell("<input type=\"text\" name=\"disporder[" . $announcement['ID'] . "]\" value=\"" . $announcement['Sort'] . "\" class=\"text_input align_center\" style=\"width: 80%; font-weight: bold;\" />", array('width' => '5%')); if ($announcement['Global']) {
echo $form->generate_hidden_field("lang", $editlang); echo $form->generate_hidden_field("editwith", $editwith); echo $form->generate_hidden_field("inadmin", $mybb->get_input('inadmin', MyBB::INPUT_INT)); if ($errors) { $page->output_inline_error($errors); } // Check if file is writable, before allowing submission $no_write = null; if (file_exists($editfile) && !is_writable($editfile) || !is_writable($folder)) { $no_write = 1; $page->output_alert($lang->alert_note_cannot_write); } $form_container = new FormContainer(htmlspecialchars_uni($file)); if ($editwithfile && $withvars) { // Editing with another file $form_container->output_row_header(preg_replace("<\\?|\\?>", "<span>?</span>", $languages[$editwith])); $form_container->output_row_header(preg_replace("<\\?|\\?>", "<span>?</span>", $languages[$editlang])); foreach ($withvars as $key => $value) { if (my_strtolower($langinfo['charset']) == "utf-8") { $withvars[$key] = preg_replace_callback("#%u([0-9A-F]{1,4})#i", create_function('$matches', 'return dec_to_utf8(hexdec($matches[1]));'), $withvars[$key]); $editvars[$key] = preg_replace_callback("#%u([0-9A-F]{1,4})#i", create_function('$matches', 'return dec_to_utf8(hexdec($matches[1]));'), $editvars[$key]); } else { $withvars[$key] = preg_replace_callback("#%u([0-9A-F]{1,4})#i", create_function('$matches', 'return dec_to_utf8(hexdec($matches[1]));'), $withvars[$key]); $editvars[$key] = preg_replace_callback("#%u([0-9A-F]{1,4})#i", create_function('$matches', 'return "&#".hexdec($matches[1]).";";'), $editvars[$key]); } // Find problems and differences in editfile in comparision to editwithfile // Count {x} in left and right variable $withvars_value_cbvCount = preg_match_all("/{[ \t]*\\d+[ \t]*}/", $withvars[$key], $matches); $editvars_value_cbvCount = preg_match_all("/{[ \t]*\\d+[ \t]*}/", $editvars[$key], $matches); // If left contain something but right is empty or only spaces || count of {x} are different betwin left and right if ($withvars[$key] && !$editvars[$key] || $withvars_value_cbvCount != $editvars_value_cbvCount) {