Example #1
0
/**
 * Display tag list
 *
 * @var		array	$tags	array of tag string
 * OR
 * @var		integer	$itemid
 * @var		integer	$catid
 * @var		integer	$modid
 *
 * @return 	array	(subject language, array of linked tags)
 */
function tagBar($tags, $catid = 0, $modid = 0)
{
    static $loaded, $delimiter;
    if (empty($tags)) {
        return array();
    }
    if (!isset($loaded)) {
        include XOOPS_ROOT_PATH . "/modules/tag/include/vars.php";
        include_once XOOPS_ROOT_PATH . "/modules/tag/include/functions.php";
        tag_define_url_delimiter();
        if (!is_object($GLOBALS["xoopsModule"]) || "tag" != $GLOBALS["xoopsModule"]->getVar("dirname")) {
            if (function_exists("xoops_load_lang_file")) {
                xoops_load_lang_file("main", "tag");
            } else {
                $path = XOOPS_ROOT_PATH . "/modules/tag/language";
                if (!@(include_once "{$path}/{$GLOBALS['xoopsConfig']['language']}/main.php")) {
                    $ret = @(include_once "{$path}/english/main.php");
                }
            }
        }
        $loaded = 1;
        $delimiter = @file_exists(XOOPS_ROOT_PATH . "/modules/tag/images/delimiter.gif") ? "<img src=\"" . XOOPS_URL . "/modules/tag/images/delimiter.gif\" alt=\"\" />" : "<img src=\"" . XOOPS_URL . "/images/pointer.gif\" alt=\"\" />";
    }
    // itemid
    if (is_numeric($tags)) {
        if (empty($modid) && is_object($GLOBALS["xoopsModule"])) {
            $modid = $GLOBALS["xoopsModule"]->getVar("mid");
        }
        $tag_handler =& xoops_getmodulehandler("tag", "tag");
        if (!($tags = $tag_handler->getByItem($tags, $modid, $catid))) {
            return array();
        }
        // if ready, do nothing
    } elseif (is_array($tags)) {
        // parse
    } elseif (!($tags = tag_parse_tag($tags))) {
        return array();
    }
    $tags_data = array();
    foreach ($tags as $tag) {
        $tags_data[] = "<a href=\"" . XOOPS_URL . "/modules/" . $GLOBALS["xoopsModule"]->getVar("dirname") . "/view.tag.php" . URL_DELIMITER . urlencode($tag) . "\" title=\"" . htmlspecialchars($tag) . "\">" . htmlspecialchars($tag) . "</a>";
    }
    return array("title" => TAG_MD_TAGS, "delimiter" => $delimiter, "tags" => $tags_data);
}
Example #2
0
        exit;
    }
    $tag_obj =& $tags_obj[0];
    $tag_id = $tag_obj->getVar("tag_id");
}
if (!empty($tag_desc)) {
    $page_title = $tag_desc;
} else {
    $module_name = "tag" == $xoopsModule->getVar("dirname") ? $xoopsConfig["sitename"] : $xoopsModule->getVar("name");
    $page_title = sprintf(TAG_MD_TAGVIEW, htmlspecialchars($tag_term), $module_name);
}
$xoopsOption["template_main"] = "tag_view.html";
$xoopsOption["xoops_pagetitle"] = strip_tags($page_title);
include XOOPS_ROOT_PATH . "/header.php";
$tag_config = tag_load_config();
tag_define_url_delimiter();
$limit = empty($tag_config["items_perpage"]) ? 10 : $tag_config["items_perpage"];
$sort = "time";
$order = "DESC";
$criteria = new CriteriaCompo(new Criteria("o.tag_id", $tag_id));
$criteria->setSort($sort);
$criteria->setOrder($order);
$criteria->setStart($start);
$criteria->setLimit($limit);
if (!empty($modid)) {
    $criteria->add(new Criteria("o.tag_modid", $modid));
    if ($catid >= 0) {
        $criteria->add(new Criteria("o.tag_catid", $catid));
    }
}
$items = $tag_handler->getItems($criteria);
Example #3
0
function tag_block_top_show($options, $dirname = "", $catid = 0)
{
    global $xoopsDB;
    if (empty($dirname)) {
        $modid = 0;
    } elseif (isset($GLOBALS["xoopsModule"]) && is_object($GLOBALS["xoopsModule"]) && $GLOBALS["xoopsModule"]->getVar("dirname") == $dirname) {
        $modid = $GLOBALS["xoopsModule"]->getVar("mid");
    } else {
        $module_handler =& xoops_gethandler("module");
        $module = $module_handler->getByDirname($dirname);
        $modid = $module->getVar("mid");
    }
    $block = array();
    $tag_handler =& xoops_getmodulehandler("tag", "tag");
    tag_define_url_delimiter();
    $criteria = new CriteriaCompo();
    $sort = $options[2] == "a" || $options[2] == "alphabet" ? "count" : $options[2];
    $criteria->setSort("count");
    $criteria->setOrder("DESC");
    $criteria->setLimit($options[0]);
    $criteria->add(new Criteria("o.tag_status", 0));
    if (!empty($options[1])) {
        $criteria->add(new Criteria("l.tag_time", time() - $options[1] * 24 * 3600, ">"));
    }
    if (!empty($modid)) {
        $criteria->add(new Criteria("l.tag_modid", $modid));
        if ($catid >= 0) {
            $criteria->add(new Criteria("l.tag_catid", $catid));
        }
    }
    if (!($tags = $tag_handler->getByLimit($criteria, empty($options[1])))) {
        return $block;
    }
    $count_max = 0;
    $count_min = 0;
    $tags_sort = array();
    foreach (array_keys($tags) as $key) {
        if ($tags[$key]["count"] > $count_max) {
            $count_max = $tags[$key]["count"];
        }
        if ($tags[$key]["count"] < $count_min) {
            $count_min = $tags[$key]["count"];
        }
        if ($options[2] == "a" || $options[2] == "alphabet") {
            $tags_sort[] = strtolower($tags[$key]["term"]);
        }
    }
    $count_interval = $count_max - $count_min;
    /*
    $font_max = $options[1];
    $font_min = $options[2];
    $font_ratio = ($count_interval) ? ($font_max - $font_min) / $count_interval : 1;
    */
    if (!empty($tags_sort)) {
        array_multisort($tags_sort, SORT_ASC, $tags);
    }
    $tags_data = array();
    foreach (array_keys($tags) as $key) {
        $tags_data[] = array("id" => $tags[$key]["id"], "term" => $tags[$key]["term"], "count" => $tags[$key]["count"]);
    }
    unset($tags, $tags_term);
    $block["tags"] =& $tags_data;
    $block["tag_dirname"] = "tag";
    if (!empty($modid)) {
        $module_handler =& xoops_gethandler('module');
        if ($module_obj =& $module_handler->get($modid)) {
            $block["tag_dirname"] = $module_obj->getVar("dirname");
        }
    }
    return $block;
}
Example #4
0
function tag_block_cumulus_show($options, $dirname = "", $catid = 0)
{
    global $xoopsDB;
    if (empty($dirname)) {
        $modid = 0;
    } elseif (isset($GLOBALS["xoopsModule"]) && is_object($GLOBALS["xoopsModule"]) && $GLOBALS["xoopsModule"]->getVar("dirname") == $dirname) {
        $modid = $GLOBALS["xoopsModule"]->getVar("mid");
    } else {
        $module_handler =& xoops_gethandler("module");
        $module = $module_handler->getByDirname($dirname);
        $modid = $module->getVar("mid");
    }
    $block = array();
    $tag_handler =& xoops_getmodulehandler("tag", "tag");
    tag_define_url_delimiter();
    $criteria = new CriteriaCompo();
    $criteria->setSort("count");
    $criteria->setOrder("DESC");
    $criteria->setLimit($options[0]);
    $criteria->add(new Criteria("o.tag_status", 0));
    if (!empty($modid)) {
        $criteria->add(new Criteria("l.tag_modid", $modid));
        if ($catid >= 0) {
            $criteria->add(new Criteria("l.tag_catid", $catid));
        }
    }
    if (!($tags = $tag_handler->getByLimit($criteria, empty($options[1])))) {
        return $block;
    }
    $count_max = 0;
    $count_min = 0;
    $tags_term = array();
    foreach (array_keys($tags) as $key) {
        if ($tags[$key]["count"] > $count_max) {
            $count_max = $tags[$key]["count"];
        }
        if ($tags[$key]["count"] < $count_min || $count_min == 0) {
            $count_min = $tags[$key]["count"];
        }
        $tags_term[] = strtolower($tags[$key]["term"]);
    }
    array_multisort($tags_term, SORT_ASC, $tags);
    $count_interval = $count_max - $count_min;
    $level_limit = 5;
    $font_max = $options[2];
    $font_min = $options[3];
    $font_ratio = $count_interval ? ($font_max - $font_min) / $count_interval : 1;
    $tags_data = array();
    foreach (array_keys($tags) as $key) {
        $tags_data[] = array("id" => $tags[$key]["id"], "font" => $count_interval ? floor(($tags[$key]["count"] - $count_min) * $font_ratio + $font_min) : 12, "level" => empty($count_max) ? 0 : floor(($tags[$key]["count"] - $count_min) * $level_limit / $count_max), "term" => $tags[$key]["term"], "count" => $tags[$key]["count"]);
    }
    unset($tags, $tags_term);
    $block["tags"] =& $tags_data;
    $block["tag_dirname"] = "tag";
    if (!empty($modid)) {
        $module_handler =& xoops_gethandler('module');
        if ($module_obj =& $module_handler->get($modid)) {
            $block["tag_dirname"] = $module_obj->getVar("dirname");
        }
    }
    $flash_params = array('flash_url' => XOOPS_URL . "/modules/cumulus/include/cumulus.swf", 'width' => $options[4], 'height' => $options[5], 'background' => preg_replace('/(#)/ie', '', $options[6]), 'tcolor' => "0x" . preg_replace('/(#)/ie', '', $options[8]), 'hicolor' => "0x" . preg_replace('/(#)/ie', '', $options[9]), 'tcolor2' => "0x" . preg_replace('/(#)/ie', '', $options[10]), 'speed' => $options[11]);
    $output = '<tags>';
    $xoops_url = XOOPS_URL;
    foreach ($tags_data as $term) {
        // assign font size
        $output .= <<<EOT
<a href='{$xoops_url}/modules/tag/view.tag.php?{$term['id']}' style='{$term['font']}'>{$term['term']}</a> 
EOT;
    }
    $output .= '</tags>';
    $flash_params['tags_formatted_flash'] = $output;
    if ($options[7] === "transparent") {
        $flash_params['transparency'] = 'widget_so.addParam("wmode", "transparent");';
    }
    $block["flash_params"] = $flash_params;
    return $block;
}