} if (isset($_GET['created'])) { $message = _formMessage(1, $_lang['global.created']); } // wysiwyg editor $output .= _admin_wysiwyg(); // vypocet hodnoceni if (!$new) { if ($query['ratenum'] != 0) { $rate = DB::result(DB::query("SELECT ROUND(ratesum/ratenum) FROM `" . _mysql_prefix . "-articles` WHERE id=" . $query['id']), 0) . "%, " . $query['ratenum'] . "x"; } else { $rate = $_lang['article.rate.nodata']; } } else { $rate = ""; } // seo title input $seo_input = "<input type='text' name='title_seo' value='" . $query['title_seo'] . "' maxlength='255' class='input" . ($author_select != '' ? 'medium' : 'big') . "' />"; // obrazek $picture = ''; if (isset($query['picture_uid'])) { $picture .= "<img src='" . _pictureStorageGet(_indexroot . 'pictures/articles/', null, $query['picture_uid'], 'jpg') . "' alt='article picture' id='is-picture-file' />\n<label id='is-picture-delete'><input type='checkbox' name='picture-delete' value='1' /> <img src='images/icons/delete3.png' class='icon' alt='" . $_lang['global.delete'] . "' /></label>"; } else { $picture .= "<img src='images/art-no-pic.png' alt='no picture' />\n"; } $picture .= "<input type='file' name='picture' id='is-picture-upload' />\n"; // formular $output .= "\n<a href='" . $backlink . "' class='backlink'>< " . $_lang['global.return'] . "</a>\n<h1>" . $_lang['admin.content.articles.edit.title'] . "</h1>\n<p class='bborder'>" . $_lang['admin.content.articles.edit.p'] . "</p>" . $message . "\n\n" . (($new == true and _loginright_adminneedconfirm) ? _admin_smallNote($_lang['admin.content.articles.edit.newconfnote']) : '') . "\n" . ($query['confirmed'] != 1 ? _admin_smallNote($_lang['admin.content.articles.edit.confnote']) : '') . "\n\n" . (!$new && DB::result(DB::query('SELECT COUNT(*) FROM `' . _mysql_prefix . '-articles` WHERE `id`!=' . $query['id'] . ' AND `home1`=' . $query['home1'] . ' AND `title_seo`=\'' . $query['title_seo'] . '\''), 0) != 0 ? _formMessage(2, $_lang['admin.content.form.title_seo.collision']) : '') . "\n\n<form class='cform' action='index.php?p=content-articles-edit" . $actionplus . "' method='post' enctype='multipart/form-data' name='artform'" . _jsCheckForm("artform", array("title")) . ">\n\n<table class='formtable'>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['article.category'] . "</strong></td>\n<td>" . _admin_rootSelect("home1", 2, $query['home1'], false) . " " . _admin_rootSelect("home2", 2, $query['home2'], true) . " " . _admin_rootSelect("home3", 2, $query['home3'], true) . "</td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['admin.content.form.title'] . "</strong></td>\n<td><input type='text' name='title' value='" . $query['title'] . "' class='inputbig' /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['admin.content.form.title_seo'] . "</strong></td>\n<td>" . ($author_select == '' ? $seo_input : "\n <table class='ae-twoi'><tr>\n <td>" . $seo_input . "</td>\n <td class='rpad'><strong>" . $_lang['article.author'] . "</strong></td>\n <td>" . $author_select . "</td>\n </tr></table>\n") . "</td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['admin.content.form.description'] . "</strong></td>\n<td>\n <table class='ae-twoi'><tr>\n <td><input type='text' name='description' value='" . $query['description'] . "' maxlength='128' class='inputmedium' /></td>\n <td class='rpad'><strong>" . $_lang['admin.content.form.keywords'] . "</strong></td>\n <td><input type='text' name='keywords' value='" . $query['keywords'] . "' maxlength='128' class='inputmedium' /></td>\n </tr></table>\n</td>\n</tr>\n\n<tr class='valign-top'>\n<td class='rpad'><strong>" . $_lang['admin.content.form.perex'] . "</strong></td>\n<td><textarea name='perex' rows='9' cols='94' class='areabigperex codemirror'>" . _htmlStr($query['perex']) . "</textarea></td>\n</tr>\n\n<tr class='valign-top'>\n<td class='rpad'><strong>" . $_lang['admin.content.form.content'] . "</strong>" . $artlink . "</td>\n<td>\n\n <table id='ae-table'>\n <tr class='valign-top'>\n <td id='content-cell'>\n <textarea name='content' rows='25' cols='68' class='wysiwyg_editor" . (!_wysiwyg || !_loginwysiwyg ? ' codemirror' : '') . "'>" . _htmlStr($query['content']) . "</textarea>\n </td>\n <td id='is-cell'>\n <div id='is-cell-wrapper'>\n <div id='is-cell-content'>\n\n <h2>" . $_lang['admin.content.form.picture'] . "</h2>\n <div id='is-picture'>" . $picture . "</div>\n\n <h2>" . $_lang['admin.content.form.settings'] . "</h2>\n <p id='is-settings'>\n <label><input type='checkbox' name='public' value='1'" . _checkboxActivate($query['public']) . " /> " . $_lang['admin.content.form.public'] . "</label>\n <label><input type='checkbox' name='visible' value='1'" . _checkboxActivate($query['visible']) . " /> " . $_lang['admin.content.form.visible'] . "</label>\n " . (_loginright_adminconfirm || !_loginright_adminneedconfirm && $query['author'] == _loginid ? "<label><input type='checkbox' name='confirmed' value='1'" . _checkboxActivate($query['confirmed']) . " /> " . $_lang['admin.content.form.confirmed'] . "</label>" : '') . "\n <label><input type='checkbox' name='comments' value='1'" . _checkboxActivate($query['comments']) . " /> " . $_lang['admin.content.form.comments'] . "</label>\n <label><input type='checkbox' name='commentslocked' value='1'" . _checkboxActivate($query['commentslocked']) . " /> " . $_lang['admin.content.form.commentslocked'] . "</label>\n <label><input type='checkbox' name='rateon' value='1'" . _checkboxActivate($query['rateon']) . " /> " . $_lang['admin.content.form.artrate'] . "</label>\n <label><input type='checkbox' name='showinfo' value='1'" . _checkboxActivate($query['showinfo']) . " /> " . $_lang['admin.content.form.showinfo'] . "</label>\n " . (!$new ? "<label><input type='checkbox' name='resetrate' value='1' /> " . $_lang['admin.content.form.resetartrate'] . " <small>(" . $rate . ")</small></label>" : '') . "\n " . (!$new ? "<label><input type='checkbox' name='delcomments' value='1' /> " . $_lang['admin.content.form.delcomments'] . " <small>(" . DB::result(DB::query("SELECT COUNT(id) FROM `" . _mysql_prefix . "-posts` WHERE home=" . $query['id'] . " AND type=2"), 0) . ")</small></label>" : '') . "\n " . (!$new ? "<label><input type='checkbox' name='resetread' value='1' /> " . $_lang['admin.content.form.resetartread'] . " <small>(" . $readed_counter . ")</small></label>" : '') . "\n </p>\n\n <h2>" . $_lang['admin.content.form.infobox'] . "</h2>\n <div id='infobox-wrapper'>\n <textarea name='infobox' rows='10' cols='20' class='codemirror'>" . _htmlStr($query['infobox']) . "</textarea>\n </div>\n\n </div>\n </div>\n </td>\n </tr>\n </table>\n\n</td>\n</tr>\n\n<tr id='time-cell'>\n<td class='rpad'><strong>" . $_lang['article.posted'] . "</strong></td>\n<td>" . _editTime('time', $query['time'], true, $new) . "</td>\n</tr>\n\n<tr>\n<td></td>\n<td id='ae-lastrow'><br /><input type='submit' value='" . $_lang[$submittext] . "' />\n" . (!$new ? "\n \n<span class='customsettings'><a href='index.php?p=content-articles-delete&id=" . $query['id'] . "&returnid=" . $query['home1'] . "&returnpage=1'><span><img src='images/icons/delete.png' alt='del' class='icon' />" . $_lang['global.delete'] . "</span></a></span> \n<span class='customsettings'><small>" . $_lang['admin.content.form.thisid'] . " " . $query['id'] . "</small></span>\n" : '') . "\n\n</td>\n</tr>\n\n</table>\n\n" . _xsrfProtect() . "</form>\n\n"; } else { $output .= "<a href='index.php?p=content-articles' class='backlink'>< " . $_lang['global.return'] . "</a>\n<h1>" . $_lang['admin.content.articles.edit.title'] . "</h1>\n" . _formMessage(3, $_lang['global.badinput']); }
_extend('call', 'mod.messages.new', array('receiver' => $rq['usr_id'], 'subject' => &$subject, 'text' => &$text)); // vlozeni do pm tabulky DB::query('INSERT INTO `' . _mysql_prefix . '-pm` (sender,sender_readtime,sender_deleted,receiver,receiver_readtime,receiver_deleted,update_time) VALUES(' . _loginid . ',UNIX_TIMESTAMP(),0,' . $rq['usr_id'] . ',0,0,UNIX_TIMESTAMP())'); $pm_id = DB::insertID(); // vlozeni do posts tabulky DB::query("INSERT INTO `" . _mysql_prefix . "-posts` (type,home,xhome,subject,text,author,guest,time,ip,bumptime) VALUES (6," . $pm_id . ",-1,'" . DB::esc($subject) . "','" . DB::esc($text) . "'," . _loginid . ",''," . time() . ",'" . _userip . "',0)"); // presmerovani a konec define('_redirect_to', _url . '/' . _indexOutput_url . '&a=list&read=' . $pm_id); return; } while (false); } // formular if (isset($message)) { $module .= $message . "\n"; } $module .= "<form action='' method='post' name='newmsg'" . _jsCheckForm('newmsg', array('receiver')) . ">\n<table>\n\n<tr>\n <td><strong>" . $_lang['mod.messages.receiver'] . "</strong></td>\n <td><input type='text' name='receiver' class='inputsmall' maxlength='24'" . _restorePostValue("receiver", _get('receiver')) . " /></td>\n</tr>\n\n<tr>\n <td><strong>" . $_lang['posts.subject'] . "</strong></td>\n <td><input type='text' name='subject' class='inputsmall' maxlength='22'" . _restorePostValue("subject", _get('subject')) . " /></td>\n</tr>\n\n<tr class='valign-top'>\n <td><strong>" . $_lang['mod.messages.message'] . "</strong></td>\n <td><textarea name='text' class='areamedium' rows='5' cols='33'>" . _restorePostValue("text", null, true) . "</textarea></td>\n</tr>\n\n<tr>\n <td></td>\n <td><input type='submit' value='" . $_lang['global.send'] . "' />" . _getPostFormControls('newmsg', 'text') . "</td>\n</tr>\n\n</table>\n\n" . _jsLimitLength(16384, 'newmsg', 'text') . "\n\n" . _xsrfProtect() . "</form>\n"; break; /* --- vypis --- */ /* --- vypis --- */ default: // cteni vzkazu if (isset($_GET['read'])) { // promenne $id = intval($_GET['read']); // nacist data $q = DB::query_row('SELECT pm.*,post.subject,post.time FROM `' . _mysql_prefix . '-pm` AS pm JOIN `' . _mysql_prefix . '-posts` AS post ON (post.type=6 AND post.home=pm.id AND post.xhome=-1) WHERE pm.id=' . $id . ' AND (sender=' . _loginid . ' AND sender_deleted=0 OR receiver=' . _loginid . ' AND receiver_deleted=0)'); if ($q === false) { $module .= _formMessage(3, $_lang['global.badinput']); break; } // titulek
/** * Sestaveni formulare * * Format $cells: * * array( * array( * 0 => popisek * 1 => obsah radku * 2 => [vertikalni zarovnani 1/0] * 3 => [obsah po tabulce] * 4 => class atribut pro <tr> * ), * ... * ) * * - radek je preskocen, pokud je popisek radku prazdny * - popisek radku bude zobrazen i pres bunku pro obsah radku, pokud je obsah radku prazdny * * Dalsi klice v $cells: * * attrs dalsi atributy pro <form> tag (HTML bez mezer) * method metoda, vychozi je post * * @param string $name nazev formulare * @param string $action cil formulare * @param array $cells radky formulare ve formatu viz vyse * @param array|null $check pole s nazvy poli pro kontrolu javascriptem nebo null * @param string|null $submittext text tlacitka pro odeslani formulare nebo null (= vychozi) * @param string|null $codenexttosubmit kod vedle odesilaciho tlacitka nebo null * @return string */ function _formOutput($name, $action, $cells, $check = null, $submittext = null, $codenexttosubmit = null) { $extend_buffer = _extend('buffer', 'sys.form.output', array('name' => &$name, 'action' => &$action, 'cells' => &$cells, 'check' => &$check, 'submittext' => &$submittext, 'codenexttosubmit' => &$codenexttosubmit)); if ('' !== $extend_buffer) { return $extend_buffer; } global $_lang; /* --- kontrola poli javascriptem, text odesilaciho tlacidla --- */ if ($check != null) { $checkcode = _jsCheckForm($name, $check); } else { $checkcode = ""; } // submit text if ($submittext != null) { $submit = $submittext; } else { $submit = $_lang['global.send']; } // metoda if (isset($cells['method'])) { $method = $cells['method']; unset($cells['method']); } else { $method = 'post'; } // atributy if (isset($cells['attrs'])) { $attrs = ' ' . $cells['attrs']; unset($cells['attrs']); } else { $attrs = ''; } /* --- vystup --- */ $hidden_content = ''; $output = "\n<form action='" . $action . "' method='" . $method . "' name='" . $name . "'" . $attrs . $checkcode . ">\n<table>"; // bunky foreach ($cells as $cell) { if ($cell[0] != "") { $class = ''; if (isset($cell[2]) && $cell[2]) { $class .= 'valign-top'; } if (isset($cell[4])) { if ('' !== $class) { $class .= ' '; } $class .= $cell[4]; } $output .= "\n <tr" . ('' === $class ? '' : ' class="' . $class . '"') . ">\n <td class='rpad'" . ($cell[1] == "" ? " colspan='2'" : '') . ">" . ($cell[1] != "" ? "<strong>" : '') . $cell[0] . ($cell[1] != "" ? "</strong>" : '') . "</td>\n " . ($cell[1] != "" ? "<td>" . $cell[1] . "</td>" : '') . "\n </tr>"; $lastcell = $cell; } if (isset($cell[3])) { $hidden_content .= $cell[3]; } } // odesilaci tlacidlo, konec tabulky $output .= "\n <tr>\n " . ((isset($lastcell[1]) and $lastcell[1] != "") ? "<td></td><td>" : "<td colspan='2'>") . "\n <input type='submit' value='" . $submit . "' />" . $codenexttosubmit . "</td>\n </tr>\n\n</table>\n" . $hidden_content . "\n" . _xsrfProtect() . "</form>"; return $output; }
// zpravy $messages_code = ""; if (isset($_GET['r'])) { switch ($_GET['r']) { case 1: $messages_code .= _formMessage(1, $_lang['global.saved']); break; case 2: $messages_code .= _formMessage(1, $_lang['global.created']); break; } } if ($message != "") { $messages_code .= _formMessage(2, $message); } $output .= "\n<p class='bborder'>" . $_lang['admin.users.edit.p'] . "</p>\n" . $messages_code . "\n<form autocomplete='off' action='index.php?p=users-edit" . ($id != null ? "&id=" . $id : '') . "' method='post' name='userform'" . _jsCheckForm("userform", $id != null ? array("username", "email") : array("username", "email", "password")) . ">\n<table class='formtable'>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['login.username'] . "</strong></td>\n<td><input type='text' name='username' class='inputsmall'" . _restorePostValue('username', $query['username']) . " maxlength='24' /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['mod.settings.publicname'] . "</strong></td>\n<td><input type='text' name='publicname' class='inputsmall'" . _restorePostValue('publicname', $query['publicname'], false, true, false) . " maxlength='24' /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang[$id == null ? 'login.password' : 'mod.settings.password.new'] . "</strong></td>\n<td><input type='password' name='password' class='inputsmall' /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.group'] . "</strong></td>\n<td>" . $group_select . "</td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['login.blocked'] . "</strong></td>\n<td><input type='checkbox' name='blocked' value='1'" . _checkboxActivate($query['blocked'] || isset($_POST['blocked'])) . " /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.levelshift'] . "</strong></td>\n<td><input type='checkbox' name='levelshift' value='1'" . _checkboxActivate($query['levelshift'] || isset($_POST['levelshift'])) . _inputDisable(_loginid == 0) . " /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.email'] . "</strong></td>\n<td><input type='text' name='email' class='inputsmall'" . _restorePostValue('email', $query['email']) . " /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.icq'] . "</strong></td>\n<td><input type='text' name='icq' class='inputsmall' value='" . (($val = _restorePostValue('icq', $query['icq'], true)) != 0 ? $val : '') . "' /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.skype'] . "</strong></td>\n<td><input type='text' name='skype' class='inputsmall'" . _restorePostValue('skype', $query['skype']) . " /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.msn'] . "</strong></td>\n<td><input type='text' name='msn' class='inputsmall'" . _restorePostValue('msn', $query['msn']) . " /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.jabber'] . "</strong></td>\n<td><input type='text' name='jabber' class='inputsmall' value='" . $query['jabber'] . "' /></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.web'] . "</strong></td>\n<td><input type='text' name='web' class='inputsmall'" . _restorePostValue('web', $query['web'], false, true, false) . " /> <small>" . $_lang['mod.settings.web.hint'] . "</small></td>\n</tr>\n\n<tr>\n<td class='rpad'><strong>" . $_lang['global.avatar'] . "</strong></td>\n<td><label><input type='checkbox' name='removeavatar' value='1' /> " . $_lang['mod.settings.avatar.remove'] . "</label></td>\n</tr>\n\n<tr class='valign-top'>\n<td class='rpad'><strong>" . $_lang['global.note'] . "</strong></td>\n<td><textarea name='note' class='areasmall' rows='9' cols='33'>" . _restorePostValue('note', $query['note'], true, true, false) . "</textarea></td>\n</tr>\n\n<tr><td></td>\n<td><input type='submit' value='" . $_lang[isset($_GET['id']) ? 'global.save' : 'global.create'] . "' />" . ($id != null ? " <small>" . $_lang['admin.content.form.thisid'] . " " . $query['id'] . "</small>" : '') . "</td>\n</tr>\n\n</table>\n" . _xsrfProtect() . "</form>\n"; // odkaz na profil a zjisteni ip if ($id != null) { $output .= "\n <p>\n <a href='" . _indexroot . "index.php?m=profile&id=" . $query['username'] . "' target='_blank'>" . $_lang['mod.settings.profilelink'] . " ></a>\n " . (_loginright_adminbans ? "<br /><a href='index.php?p=other-bans&getip=" . $query['username'] . "'>" . $_lang['admin.other.bans.getuserip'] . " ></a>" : '') . "\n </p>\n "; } } else { switch ($errno) { case 1: $output .= _formMessage(2, $_lang['global.baduser']); break; case 2: $output .= _formMessage(2, $_lang['global.rootnote']); break; default: $output .= _formMessage(3, $_lang['global.disallowed']); break;
$groups = "<table class='list'>\n<thead><tr><td>" . $_lang['global.name'] . "</td><td>" . $_lang['admin.users.groups.level'] . "</td><td>" . $_lang['admin.users.groups.members'] . "</td><td>" . $_lang['global.action'] . "</td></tr></thead>\n<tbody>"; $query = DB::query("SELECT id,title,icon,color,blocked,level,reglist,(SELECT COUNT(id) FROM `" . _mysql_prefix . "-users` WHERE `group`=`" . _mysql_prefix . "-groups`.id) AS user_count FROM `" . _mysql_prefix . "-groups` ORDER BY level DESC"); while ($item = DB::row($query)) { $is_sys = in_array($item['id'], $sysgroups_array); $groups .= "\n <tr>\n <td><a href='index.php?p=users-editgroup&id=" . $item['id'] . "'" . ($item['blocked'] == 1 ? " class='invisible'" : '') . ($item['color'] !== '' ? " style='color:" . $item['color'] . ";'" : '') . ">" . ($item['reglist'] == 1 ? "<img src='images/icons/list.png' alt='reglist' class='icon' title='" . $_lang['admin.users.groups.reglist'] . "' />" : '') . ($item['icon'] != "" ? "<img src='" . _indexroot . "pictures/groupicons/" . $item['icon'] . "' alt='icon' class='groupicon' /> " : '') . ($is_sys ? "<u>" : '') . $item['title'] . ($is_sys ? "</u>" : '') . "</a></td>\n <td>" . $item['level'] . "</td>\n <td><a href='index.php?p=users-list&group=" . $item['id'] . "'>" . ($item['id'] != 2 ? $item['user_count'] : "-") . "</a></td>\n <td><a href='index.php?p=users-delgroup&id=" . $item['id'] . "' title='" . $_lang['global.delete'] . "'><img src='images/icons/delete.png' alt='del' class='icon' />" . $_lang['global.delete'] . "</a></td>\n </tr>\n"; } $groups .= "</tbody>\n</table>"; } else { $groups = ""; } // zprava switch ($msg) { case 1: $message = _formMessage(1, $_lang['global.done']); break; case 2: $message = _formMessage(2, $_lang['admin.users.groups.specialgroup.delnotice']); break; case 3: $message = _formMessage(3, $_lang['global.disallowed']); break; case 4: $message = _formMessage(3, $_lang['global.badgroup']); break; default: $message = ""; break; } /* --- vystup --- */ $output .= "\n<p>" . $_lang['admin.users.p'] . "</p>\n\n" . $message . "\n\n<table class='wintable'>\n<tr class='valign-top'>\n\n " . (_loginright_adminusers ? "\n <td" . (_loginright_admingroups ? " style='width: 40%;' class='rbor'" : '') . ">\n <h2>" . $_lang['admin.users.users'] . "</h2>\n <p class='bborder'>\n<a href='index.php?p=users-edit'><img src='images/icons/new.png' alt='new' class='icon' />" . $_lang['global.create'] . "</a>\n<span style='color:#b2b2b2;'> | </span>\n<a href='index.php?p=users-list'><img src='images/icons/action.png' alt='act' class='contenttable-icon' />" . $_lang['admin.users.list'] . "</a> \n<a href='index.php?p=users-move'><img src='images/icons/action.png' alt='act' class='contenttable-icon' />" . $_lang['admin.users.move'] . "</a></p>\n\n <div class='lpad'>\n\n <form class='cform' action='index.php' method='get' name='edituserform'" . _jsCheckForm("edituserform", array("id")) . ">\n <input type='hidden' name='p' value='users-edit' />\n <strong>" . $_lang['admin.users.edituser'] . "</strong><br /><input type='text' name='id' class='inputsmall' />\n <input type='submit' value='" . $_lang['global.continue'] . "' />\n </form><br />\n\n <form class='cform' action='index.php' method='get' name='deleteuserform'" . _jsCheckForm("deleteuserform", array("id")) . ">\n <input type='hidden' name='p' value='users-delete' />\n " . _xsrfProtect() . "\n <strong>" . $_lang['admin.users.deleteuser'] . "</strong><br /><input type='text' name='id' class='inputsmall' />\n <input type='submit' value='" . $_lang['global.do'] . "' onclick='return _sysConfirm();' />\n </form>\n\n </div>\n\n </td>\n " : '') . "\n\n\n " . (_loginright_admingroups ? "<td>\n <h2>" . $_lang['admin.users.groups'] . "</h2>\n <form action='index.php?p=users' method='post'><p class='bborder'><strong>" . $_lang['admin.users.groups.new'] . ":</strong> " . _admin_authorSelect("type", -1, "1", null, $_lang['admin.users.groups.new.empty'], true) . " <input type='submit' value='" . $_lang['global.do'] . "' /></p>" . _xsrfProtect() . "</form>\n " . $groups . "\n </td>\n " : '') . "\n\n\n</tr>\n</table>\n";