Example #1
0
function wg_bt_tag($input, $args, $parser, $frame)
{
    // debug levels: tag, lookup
    if (isset($args["debug"])) {
        $args["debug"] = bt_str($args["debug"]);
        ob_start();
        if ($args["debug"] == "tag") {
            $r = bt_tag($input, $args);
        } elseif ($args["debug"] == "lookup") {
            $r = bt_l_tag(bt_tag($input, $args), $args);
        } else {
            $r = bt_r_tag(bt_l_tag(bt_tag($input, $args), $args), $args);
        }
        var_dump($r);
        return ob_get_clean();
    } else {
        // 1. bt_tag: build bib array from bibtex
        // 2. bt_l_tag: lookup and pick referred entries from bt_tag
        // 3. bt_r_tag: render the result
        return bt_r_tag(bt_l_tag(bt_tag($input, $args), $args), $args);
    }
}
function bt_l_tag($barr = NULL, $args = NULL)
{
    global $wgBibtechBib;
    global $wgBibtechRoot;
    global $wgBibtechSortBy;
    // in ref mode the lookup table will be used
    $mode = "ref";
    if (isset($args["mode"])) {
        $mode = bt_str($args["mode"]);
    }
    $lbarr = array();
    if ($barr == NULL) {
        return NULL;
    }
    if (!isset($args["bib"])) {
        $bib = $wgBibtechRoot;
    } else {
        $bib = bt_str($args["bib"]);
    }
    if (!isset($wgBibtechBib[$bib]) && $mode != "list") {
        return NULL;
    }
    // list mode
    if ($mode == "list") {
        if (isset($args["sortby"])) {
            $wgBibtechSortBy = bt_str($args["sortby"]);
        }
        uasort($barr, "bt_cmp");
        return $barr;
    }
    // reference mode
    // bc is the bibliography counter
    $bc = $wgBibtechBib[$bib]["bc"];
    foreach ($wgBibtechBib[$bib]["ckeys"] as $ckey => $val) {
        if (!isset($barr[$ckey])) {
            $lbarr[$ckey] = array("type" => "missing", "ckey" => $ckey);
        } else {
            $lbarr[$ckey] = $barr[$ckey];
        }
        // build up lookup bib
        $val["bc"] = $bc;
        $lbarr[$ckey] = array_merge($lbarr[$ckey], $val);
    }
    // end foe
    return $lbarr;
}
Example #3
0
function bt_r_frm($tag, $arr = NULL, $url = NULL)
{
    $tag = bt_str($tag);
    $str = $arr[$tag];
    // custom formatting
    $ffunc = "bt_r_frm_" . $tag;
    if (function_exists($ffunc)) {
        $str = call_user_func_array($ffunc, array($str));
    }
    if ($url != NULL) {
        $str = '<a class="external" target="_new" href="' . $url . '">' . $str . '</a>';
    }
    return '<span class="bibtech_' . $tag . '">' . $str . '</span>';
}