Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
        $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;
Ejemplo n.º 3
0
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;
}