function find_keylist($find = 0) { global $keywords; if (empty($keywords)) { $keywords = new KeyWords(); } if (!$find) { foreach ($keywords->getTree() as $key) { if ($key['weight']) { $find = $key['keyid']; break; } } } if (!$find) { return false; } $words = $this->getKeywords(); $keys = array(); foreach ($words as $id) { $cur = $keywords->keys_path($id, $find); if (count($keys) < count($cur)) { $keys = $cur; } } return $keys; }
$vals[$k] = $xoopsDB->quoteString($myts->stripSlashesGPC($_POST[$k])); } $keyid = intval($_POST['keyid']); redirect_result($keywords->insert($keyid, $vals)); } elseif (isset($_POST['delkey'])) { $keyid = intval($_POST['keyid']); redirect_result($keywords->delete($keyid)); } xoops_cp_header(); include "mymenu.php"; $keyid = isset($_GET['keyid']) ? intval($_GET['keyid']) : 0; switch ($op) { default: echo "<h2>" . _AM_KEYWORDS_ADMIN . "</h2>\n"; echo "<style>\n.level1 li { margin-left: 2em; list-style: disc; }\n.level2 li { margin-left: 3em; list-style: circle; }\n.level3 li { margin-left: 4em; list-style: none; }\n</style>"; keywords_list($keywords->getTree()); echo "<hr/>"; keyword_form(); break; case 'editkey': keyword_form($keyid); break; case 'delkey': del_keyword_form($keyid); break; } xoops_cp_footer(); function keywords_list($keys, $level = 0) { if (empty($keys)) { return;
function keywords_widget(&$ret, &$relays, &$roots) { global $content, $keywords; $keywords = new KeyWords(); $tree = $keywords->getTree(); if (empty($tree)) { return null; } $keys = $content->getKeywords(); $ret = array(); $relays = array(); $all = $keywords->get(); foreach ($all as $key) { if (!empty($key['relay'])) { $root = $key; while ($root['parent']) { $root = $all[$root['parent']]; } $relays[$key['keyid']] = array('keyid' => $key['relay'], 'root' => $root['keyid'], 'values' => array(), 'labels' => array()); } } $roots = array(); foreach ($tree as $key) { // makes toplevel widget $keyid = $key['keyid']; $roots[] = $keyid; $name = "keywords[{$keyid}]"; $words = new KeyFormSelect('', $name); $words->addOption('', _MD_KEY_NONE); $opts = key_expand($key['child']); $words->addOptions($opts); $find = null; foreach ($opts as $opt) { $oid = $opt['keyid']; $check = true; if (empty($oid)) { continue; } foreach (explode(',', $oid) as $id) { if (!in_array($id, $keys)) { $check = false; } $pid = $all[$id]['parent']; if (isset($relays[$pid])) { $relays[$pid]['values'][] = $opt['keyid']; $relays[$pid]['labels'][] = $opt['name']; } } if ($check) { $find = $oid; } } if ($find) { $words->setValue($find); } $words->setExtra('onchange="changeKeyword(this);"'); $ret[$key['keyid']] = $words->render(); } return $ret; }