chengkun
2025-05-26 8f3df543230cd4403368b39b9bbe5726d11a0284
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
 
/*
    [UCenter] (C)2001-2099 Comsenz Inc.
    This is NOT a freeware, use is subject to license terms
 
    $Id: tag.php 1059 2011-03-01 07:25:09Z monkey $
*/
 
!defined('IN_UC') && exit('Access Denied');
 
class tagcontrol extends base {
 
    function __construct() {
        $this->tagcontrol();
    }
 
    function tagcontrol() {
        parent::__construct();
        $this->init_input();
        $this->load('tag');
        $this->load('misc');
    }
 
    function ongettag() {
        $appid = $this->input('appid');
        $tagname = $this->input('tagname');
        $nums = $this->input('nums');
        if(empty($tagname)) {
            return NULL;
        }
        $return = $apparray = $appadd = array();
 
        if($nums && is_array($nums)) {
            foreach($nums as $k => $num) {
                $apparray[$k] = $k;
            }
        }
 
        $data = $_ENV['tag']->get_tag_by_name($tagname);
        if($data) {
            $apparraynew = array();
            foreach($data as $tagdata) {
                $row = $r = array();
                $tmp = explode("\t", $tagdata['data']);
                $type = $tmp[0];
                array_shift($tmp);
                foreach($tmp as $tmp1) {
                    $tmp1 != '' && $r[] = $_ENV['misc']->string2array($tmp1);
                }
                if(in_array($tagdata['appid'], $apparray)) {
                    if($tagdata['expiration'] > 0 && $this->time - $tagdata['expiration'] > 3600) {
                        $appadd[] = $tagdata['appid'];
                        $_ENV['tag']->formatcache($tagdata['appid'], $tagname);
                    } else {
                        $apparraynew[] = $tagdata['appid'];
                    }
                    $datakey = array();
                    $count = 0;
                    foreach($r as $data) {
                        $return[$tagdata['appid']]['data'][] = $data;
                        $return[$tagdata['appid']]['type'] = $type;
                        $count++;
                        if($count >= $nums[$tagdata['appid']]) {
                            break;
                        }
                    }
                }
            }
            $apparray = array_diff($apparray, $apparraynew);
        } else {
            foreach($apparray as $appid) {
                $_ENV['tag']->formatcache($appid, $tagname);
            }
        }
        if($apparray) {
            $this->load('note');
            $_ENV['note']->add('gettag', "id=$tagname", '', $appadd, -1);
        }
        return $return;
    }
 
}
 
?>