1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
22: function smarty_function_legacy_tag_cloud($params, &$smarty)
23: {
24: $tDirname = $params['tDirname'];
25: $dirname = isset($params['dirname']) ? $params['dirname'] : null;
26: $dataname = isset($params['dataname']) ? $params['dataname'] : null;
27: $uidList = isset($params['uidList']) ? $params['uidList'] : null;
28: $max = isset($params['max']) ? $params['max'] : 200;
29: $min = isset($params['min']) ? $params['min'] : 80;
30: $template = isset($params['template']) ? $params['template'] : 'legacy_inc_tag_cloud.html';
31: $cloud = array();
32:
33: XCube_DelegateUtils::call('Legacy_Tag.'.$tDirname.'.GetTagCloudSrc',
34: new XCube_Ref($cloud),
35: $tDirname,
36: $dirname,
37: $dataname,
38: $uidList
39: );
40:
41: $sizeArr = _smarty_function_legacy_tag_cloud_get_size($cloud, $max, $min);
42:
43:
44: $render = new XCube_RenderTarget();
45: $render->setTemplateName($template);
46: $render->setAttribute('legacy_buffertype',XCUBE_RENDER_TARGET_TYPE_MAIN);
47: $render->setAttribute('dirname', $tDirname);
48: $render->setAttribute('cloud', $cloud);
49: $render->setAttribute('sizeArr', $sizeArr);
50: XCube_Root::getSingleton()->getRenderSystem('Legacy_RenderSystem')->render($render);
51:
52: echo $render->getResult();
53: }
54:
55: function _smarty_function_legacy_tag_cloud_get_size( $tagList, $max, $min)
56: {
57:
58: if(count($tagList)>0){
59: $maxQty = max(array_values($tagList));
60: $minQty = min(array_values($tagList));
61: }
62:
63:
64: $spread = $maxQty - $minQty;
65: if ($spread<=0) {
66: $spread = 1;
67: }
68:
69:
70:
71: $step = ($max - $min)/($spread);
72:
73:
74: $sizeArr = array();
75: foreach ($tagList as $key => $value) {
76:
77:
78:
79:
80: $sizeArr[$key] = $min + (($value - $minQty) * $step);
81: }
82: return $sizeArr;
83: }
84: ?>
85: