function showusermod() { global $lang; global $conf; global $user; global $admin; global $site; global $userid; $site->title($lang['admin']['modifyusers']); $site->addfooter("help.php?on=admin#user", "help", $lang['menu']['help'], $lang['menu']['helpalt']); if ($_POST['cancel']) { redirect("admin.php"); } $form1 = new CodeKBForm("admin.php", "modifyuser"); $form1->addhidden("user", $userid); $form1->addtext("name", $admin->username($userid)); $form1->addlabel("name", $lang['general']['username']); $form1->setrequired("name"); $form1->addpassword("password"); $form1->addlabel("password", $lang['admin']['password']); $form1->addcheckbox("delete", $lang['admin']['deleteuser']); $form1->addsubmit("changeuser"); $form1->addcancel(); $form2 = new CodeKBForm("admin.php", "modifyuser"); $form2->addhidden("user", $userid); $groups = $admin->listgroups(); foreach ($groups as $val) { if (!is_null($val['name'])) { $form2->addcombo("group", $val['id'], $val['name']); } } $form2->addsubmit("joingroup"); $form2->addcancel(); $form3 = new CodeKBForm("admin.php", "modifyuser"); $form3->addhidden("user", $userid); $usersgroups = $admin->usersgroups($userid); foreach ($usersgroups as $val) { if (!is_null($val['name'])) { $form3->addcheckbox("group_" . $val['id'], $val['name'] . " (" . url("admin.php?group=" . $val['id'] . "&action=modifygroup", $lang['general']['modify']) . ")"); } } $form3->addsubmit("partgroup", $lang['general']['delete']); $form3->addcancel(); if ($_POST['changeuser']) { if (!$form1->fill()) { $site->addcontent(notice($lang['general']['missing'])); } else { if ($form1->value("delete")) { try { $admin->deleteuser($userid); redirect("admin.php?action=users"); } catch (Exception $e) { if ($e->getCode() == 1) { $site->addcontent(notice($lang['admin']['deleteadmin'])); } else { $site->addcontent(notice($lang['admin']['faileddeluser'])); } } } else { try { $admin->changeuser($userid, $form1->value("name"), $form1->value("password")); $site->addcontent(notice($lang['admin']['changeusersucc'])); $form1->addpassword("password", ""); } catch (Exception $e) { if ($e->getCode() == 1) { $site->addcontent(notice($lang['admin']['duplicateuser'])); $form1->setmissing("name"); } else { $site->addcontent(notice($lang['admin']['failesuserchange'])); } } } } } if ($_POST['joingroup'] && $form2->fill() && $form2->value("group")) { try { $admin->joingroup($userid, $form2->value("group")); $site->addcontent(notice($lang['admin']['joinsucc'])); $form3->addcheckbox("group_" . $form2->value("group"), $admin->groupname($form2->value("group")) . " (" . url("admin.php?group=" . $form2->value("group") . "&action=modifygroup", $lang['general']['modify']) . ")"); } catch (Exception $e) { if ($e->getCode() == 1) { $site->addcontent(notice($lang['admin']['alreadyingroup'])); } else { $site->addcontent(notice($lang['admin']['failedjoin'])); } } } if ($_POST['partgroup'] && $form3->fill()) { try { foreach ($usersgroups as $val) { if ($form3->value("group_" . $val['id'])) { $admin->partgroup($userid, $val['id']); $notice = $lang['admin']['partsucc']; $form3->remove("group_" . $val['id']); } } } catch (Exception $e) { $notice = $lang['admin']['failedpart']; } $site->addcontent(notice($notice)); } $dialog = new CodeKBTemplate("dialog"); $dialog->push("legend", $lang['admin']['modifyusers']); $dialogitem1 = new CodeKBTemplate("dialogitem"); $content = $form1->head(); $content .= $lang['admin']['changeuserexplain'] . "<br /><br />\n"; $dialogitem1->push("head", $content); $dialogitem1->push("content1", $form1->get()); $dialogitem1->push("tail", $form1->tail()); $dialogitem2 = new CodeKBTemplate("dialogitem"); $content = $form2->head(); $content .= $lang['admin']['joinuserexplain'] . "<br /><br />\n"; $dialogitem2->push("head", $content); $dialogitem2->push("content1", $form2->get()); $dialogitem2->push("tail", $form2->tail()); $dialogitem3 = new CodeKBTemplate("dialogitem"); $content = $form3->head(); $content .= $lang['admin']['partuserexplain'] . "<br /><br />\n"; $dialogitem3->push("head", $content); $content = "<div class = \"forms\">"; $content .= $form3->get(); $content .= "</div>"; $dialogitem3->push("content1", $content); $dialogitem3->push("tail", $form3->tail()); $dialogcode = $dialogitem1->__toString(); $dialogcode .= $dialogitem2->__toString(); $dialogcode .= $dialogitem3->__toString(); $dialog->push("content", $dialogcode); $site->addcontent($dialog); return true; }
function showregister() { global $lang; global $site; global $user; $site->title($lang['register']['title']); $site->addfooter("help.php?on=login", "help", $lang['menu']['help'], $lang['menu']['helpalt']); if ($_POST['cancel']) { redirect("home.php"); } $form = new CodeKBForm("login.php", "register"); $form->addtext("user"); $form->addlabel("user", $lang['general']['username']); $form->setrequired("user"); $form->addpassword("password"); $form->addlabel("password", $lang['general']['password']); $form->setrequired("password"); $form->addpassword("password2"); $form->addlabel("password2", $lang['register']['passwordagain']); $form->setrequired("password2"); $form->addsubmit(); $form->addcancel(); if ($_POST['submit']) { if (!$form->fill()) { $site->addcontent(notice($lang['general']['missing'])); } else { if ($form->value("password") != $form->value("password2")) { $site->addcontent(notice($lang['register']['wrongpass'])); $form->setmissing("password"); $form->setmissing("password2"); } else { try { $user->register($form->value("user"), $form->value("password")); redirect("login.php?action=registered"); } catch (Exception $e) { if ($e->getCode() == 1) { $site->addcontent(notice($lang['register']['duplicate'])); $form->setmissing("user"); $form->setmissing("password"); $form->setmissing("password2"); } else { $site->addcontent(notice($lang['register']['failed'])); } } } } } $dialog = new CodeKBTemplate("dialog"); $dialog->push("legend", $lang['register']['title']); $content = $form->head(); $content .= $lang['register']['description'] . "<br /><br />\n"; $content .= $form->get(); $content .= $form->tail(); $dialog->push("content", $content); $site->addcontent($dialog); return true; }
function showinput() { global $lang; global $user; global $site; global $conf; global $category; $site->addfooter("help.php?on=category#add", "help", $lang['menu']['help'], $lang['menu']['helpalt']); if ($site->action() == "change") { $change = true; } else { $change = false; } if ($change) { $site->title($lang['category']['change']); } else { $site->title($lang['category']['add']); } if ($change && !$user->can("changecat", $category)) { $site->addcontent(notice($lang['category']['nochangeallowed'])); return false; } if (!$change && !$user->can("addcat", $category)) { $site->addcontent(notice($lang['category']['noaddallowed'])); return false; } if ($_POST['cancel']) { redirect("category.php?id=" . $category->id()); } $form = new CodeKBForm("category.php", $change ? "change" : "new"); $form->addhidden("id", $category->id()); $form->addtext("name", $change ? $category->name() : ""); $form->addlabel("name", $lang['category']['name']); $form->setrequired("name"); $form->addtext("description", $change ? $category->description() : ""); $form->addlabel("description", $lang['category']['description']); if ($change) { if ($user->can("addcat", $a = 0)) { $form->addcombo("parent", "0", $lang['category']['root'], $category->parent() == 0); } $array = $category->listcategories("name", 1, 0); foreach ($array as $val) { if ($user->can("addcat", $val['id'])) { $form->addcombo("parent", $val['id'], str_repeat("-", $val['reclevel'] * 2) . " " . $val['name'], $category->parent() == $val['id']); } } $form->addlabel("parent", $lang['category']['parent']); } $form->addbutton("submit"); $form->addbutton("cancel"); if ($_POST['submit']) { if ($change) { // Change category if (!$form->fill()) { $site->addcontent(notice($lang['general']['missing'])); } else { try { $category->change($form->value("name"), $form->value("description"), $form->value("parent")); redirect("category.php?id=" . $category->id()); } catch (Exception $e) { switch ($e->getCode()) { case 1: $site->addcontent(notice($lang['category']['childnoparent'])); $form->setmissing("parent"); break; case 2: $site->addcontent(notice($lang['category']['duplicate'])); $form->setmissing("name"); break; default: $site->addcontent(notice($lang['category']['failedchange'])); } } } } else { // Add category if (!$form->fill()) { $site->addcontent(notice($lang['general']['missing'])); } else { try { $category->addsubcat($form->value("name"), $form->value("description")); redirect("category.php?id=" . $category->id()); } catch (Exception $e) { switch ($e->getCode()) { case 1: $site->addcontent(notice($lang['category']['duplicate'])); $form->setmissing("name"); break; default: $site->addcontent(notice($lang['category']['failedadd'])); } } } } } $dialog = new CodeKBTemplate("dialog"); if ($change) { $dialog->push("legend", $lang['category']['change']); } else { $dialog->push("legend", $lang['category']['add']); } $dialogitem = new CodeKBTemplate("dialogitem"); $content = $form->head(); $content .= $form->get("name"); $dialogitem->push("top", $content); $dialogitem->push("content1", $form->get()); $dialogitem->push("tail", $form->tail()); $dialog->push("content", $dialogitem); $site->addcontent($dialog); return true; }
function showlinks() { global $lang; global $user; global $site; global $category; global $entry; $site->title($lang['entry']['link']); $site->addfooter("help.php?on=entry#link", "help", $lang['menu']['help'], $lang['menu']['helpalt']); if (!$user->entrycan("delentry", $entry) && !$user->entrycan("addentry", $entry)) { $site->addcontent(notice($lang['entry']['nochangeallowed'])); return false; } if ($category) { $cat = $category->id(); } if ($_POST['cancel']) { redirect("entry.php?id=" . $entry->id() . "&cat=" . $cat); } if ($user->entrycan("addentry", $entry)) { $form1 = new CodeKBForm("entry.php", "link"); $form1->addhidden("id", $entry->id()); $form1->addhidden("cat", $cat); $tmpcat = new CodeKBCategory(0, $user); if ($user->can("addentry", $tmpcat)) { $form1->addcombo("newcat", "0", $lang['category']['root']); } $array = $tmpcat->listcategories("name", 1); foreach ($array as $val) { if ($user->can("addentry", $val['id'])) { $form1->addcombo("newcat", $val['id'], str_repeat("-", $val['reclevel'] * 2) . " " . $val['name']); } } unset($tmpcat); $form1->addlabel("newcat", $lang['entry']['linkadd']); $form1->addsubmit("addlink"); $form1->addcancel(); } if ($user->entrycan("delentry", $entry)) { $form2 = new CodeKBForm("entry.php", "link"); $form2->addhidden("id", $entry->id()); $form2->addhidden("cat", $cat); $catsofentry = $entry->categories(); foreach ($catsofentry as $val) { $thiscat = new CodeKBCategory($val, $user); $form2->addcheckbox("cat_" . $thiscat->id(), $thiscat->name()); unset($thiscat); } $form2->addsubmit("unlink", $lang['general']['delete']); $form2->addcancel(); } if ($_POST['addlink'] && $form1->fill()) { try { $newcat = new CodeKBCategory($form1->value("newcat"), $user); if ($entry->addlink($form1->value("newcat"))) { $site->addcontent(notice(phrasereplace($lang['entry']['linkaddsucc'], "%1%", $newcat->name()))); if ($form2) { $form2->addcheckbox("cat_" . $newcat->id(), $newcat->name()); } } else { $site->addcontent(notice($lang['entry']['failedchange'])); } unset($newcat); } catch (Exception $e) { if ($e->getCode() == 1) { $site->addcontent(notice($lang['entry']['duplicate'])); $form1->setmissing("newcat"); } else { $site->addcontent(notice($lang['entry']['failedchange'])); } } } if ($_POST['unlink'] && is_object($form2) && $form2->fill()) { $id = $entry->id(); foreach ($catsofentry as $val) { if ($form2->value("cat_" . $val) == "1") { try { $entry->delink($val); $notice = $lang['entry']['linkremovesucc']; $form2->remove("cat_" . $val); } catch (Exception $e) { $form2->setmissing("cat_" . $val); $notice = $lang['entry']['failedunlink']; break; } } } if (!$user->entrycan("see", $entry, false)) { redirect("category.php?id=" . $cat); } $site->addcontent(notice($notice)); } $dialog = new CodeKBTemplate("dialog"); $dialog->push("legend", $lang['entry']['link']); $dialogcode = ""; if ($form1) { $dialogitem1 = new CodeKBTemplate("dialogitem"); $content = $form1->head(); $content .= $lang['entry']['linkaddexplain'] . "<br /><br />\n"; $dialogitem1->push("head", $content); $dialogitem1->push("content1", $form1->get()); $dialogitem1->push("tail", $form1->tail()); $dialogcode .= $dialogitem1->__toString(); } if ($form2) { $dialogitem2 = new CodeKBTemplate("dialogitem"); $content = $form2->head(); $content .= $lang['entry']['linkremoveexplain'] . "<br /><br />\n"; $dialogitem2->push("head", $content); $content = "<div class = \"forms\">\n"; $content .= $form2->get(); $content .= "</div>"; $dialogitem2->push("content1", $content); $dialogitem2->push("tail", $form2->tail()); $dialogcode .= $dialogitem2->__toString(); } $dialog->push("content", $dialogcode); $site->addcontent($dialog); return true; }