block.mtifisancestor.php

来自「1. 记录每个帖子的访问人情况」· PHP 代码 · 共 45 行

PHP
45
字号
<?phpfunction smarty_block_MTIfIsAncestor($args, $content, &$ctx, &$repeat) {    $localvars = array('conditional', 'else_content');    if (!isset($content)) {       require_once("MTUtil.php");       $cat = get_category_context($ctx);       $ctx->localize($localvars);       list($child) = $ctx->mt->db->fetch_categories(array('label' => $args['child'], 'blog_id' => $ctx->stash('blog_id'), 'show_empty' => 1));       if ($child) {           if (!_is_ancestor($cat, $child, $ctx))               $child = null;       }       $ctx->stash('else_content', null);       $ctx->stash('conditional', $child ? 1 : 0);    } else {       if (!$ctx->stash('conditional'))           $content = $ctx->stash('else_content');       $ctx->restore($localvars);    }    return $content;}function _is_ancestor(&$cat, &$possible_child, &$ctx) {    # Catch the different blog edge case    if ($cat['category_blog_id'] != $possible_child['category_blog_id'])         return 0;    if ($cat['category_id'] == $possible_child['category_id'])         return 1;    # Keep having the child bump up one level in the hierarchy    # to see if it ever reaches the current category    # (more efficient than descending from the current category    # as the children lists do not need to be calculated)    while ($id = $possible_child['category_parent']) {        $possible_child = $ctx->mt->db->fetch_category($id);        if ($cat['category_id'] == $id)            return 1;    }    # Looks like we didn't find it    return 0;}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?