Esempio n. 1
0
 /**
  * 构造函数,初始化组件
  *
  * @access public
  * @param mixed $request request对象
  * @param mixed $response response对象
  * @param mixed $params 参数列表
  */
 public function __construct($request, $response, $params = NULL)
 {
     //设置函数内部对象
     $this->request = $request;
     $this->response = $response;
     $this->parameter = new Typecho_Config();
     if (!empty($params)) {
         $this->parameter->setDefault($params);
     }
 }
Esempio n. 2
0
 /**
  * 标签云
  * @params string 配置字符串
  * @format string 格式化输出
  * @return void
  */
 public static function tagCloud($params = null, $format = '<a href="{permalink}" style="{fontsize};{color};" title="{count}篇文章">{name}</a>')
 {
     Typecho_Widget::widget('Widget_Metas_Tag_Cloud', $params)->to($tags);
     $list = $counts = array();
     while ($tags->next()) {
         $list[] = array('mid' => $tags->mid, 'name' => $tags->name, 'permalink' => $tags->permalink, 'count' => $tags->count);
         $counts[] = $tags->count;
     }
     if (empty($counts)) {
         echo '暂无标签';
         return;
     }
     $min_count = min($counts);
     $spread = max($counts) - $min_count;
     $params = new Typecho_Config($params);
     $params->setDefault(array('smallest' => 8, 'largest' => 22, 'unit' => 'pt'));
     if ($spread <= 0) {
         $spread = 1;
     }
     $font_spread = $params->largest - $params->smallest;
     if ($font_spread < 0) {
         $font_spread = 1;
     }
     $font_step = $font_spread / $spread;
     $html = '';
     foreach ($list as $tag) {
         $color = 'color:#' . self::randColor();
         $fontsize = 'font-size:' . ($params->smallest + ($tag['count'] - $min_count) * $font_step) . $params->unit;
         $html .= str_replace(array('{name}', '{permalink}', '{count}', '{fontsize}', '{color}'), array($tag['name'], $tag['permalink'], $tag['count'], $fontsize, $color), $format);
     }
     echo $html;
 }