织梦二次开发

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 914|回复: 0

[软件模型] 织梦自定义软件等级符号,用星表示软件或Flash的等级函数GetRankStar($rank)详解

[复制链接]

1046

主题

1109

帖子

5334

积分

超级版主

Rank: 8Rank: 8

金币
256
贡献
3959
发表于 2015-7-11 14:52:57 | 显示全部楼层 |阅读模式
  如果我们的网站是做下载站的,那么,我们就能用到这个功能,就是用星号来表示这款软件如何,当然,你的文章、flash、商品等都可以用星号作用判断该内容的等级,除了星号外,你还可以使用其它符号来表示软件或其它内容的推荐等级,用什么符号由你自己去定义。

  软件里面的使用的星号如下图所示:

1.png

  这个星号是通过函数GetRankStar($rank)来实现的,本教程就是对这个函数进行分析,然后,根据我们自己的需要进行自定义自己的符号。

分析代码开始:

  函数所在文件:include/helpers/channelunit.helper.php

  函数功能:返回的字符串是星号个数

  参数:要显示的星星数

  函数代码:
  1. if ( ! function_exists('GetRankStar'))
  2. {
  3.     function GetRankStar($rank)
  4.     {
  5.         $nstar = "";
  6.         for($i=1;$i<=$rank;$i++)
  7.         {
  8.             $nstar .= "★";
  9.         }
  10.         for($i;$i<=5;$i++)
  11.         {
  12.             $nstar .= "☆";
  13.         }
  14.         return $nstar;
  15.     }
  16. }
复制代码

  要知道一个函数是不是存在,我们先判断一下,这是我们写函数的一种规范,这样的好处是当函数不存在了,我们才定义一个函数。如果我们研究多了织梦代码的话,你会发现很多地方织梦都作了一个判断,判断的好处理可以提高执行代码效率。

  其实,这个函数比较简单,因为我们判断一个软件好等级就用二种符号,例如符号越颜色越黑表示软件越好,若是颜色越是空白或灰色,表示软件越不好,知道了这个,那么,我们去写函数时就有根据了。

  当程函数被调用后,通过参数$rank传递过来的值后,首先调用第一个黑色的符号for循环,例如,我们调用GetRankStar(3)时,程序首先会通过for遍历出3个"★"星号字符串,放入到变量$nstar里面,即$nstar="★★★",然后,接着

执行下面的for,注意,此时,在第二个for里面的$i变成了3,也就是参数值,所以,第二个for是以$i=3开始遍历符号"☆",直到遍历到5后,也就是遍历出2个“☆”号。这样,$nstar就变成了$nstar="★★★☆☆"。

  这就是我们把软件设置为三星的结果,这个函数里面用了一个小小的技巧就是:把参数作为第二个for的起开始值,进行遍历到设置的固定的数值5,如果这个值改为8,那么,遍历出来的将是3个黑星5个白星。

  织梦模板里面实现调用流程:

  标签写法:{dede:field.softrank function='GetRankStar(@me)'/} 在这个标签里面这个softrank的值是一个数字,这个我们可以查看一下数据表如下图所示。
2.png
  
  这样标签解析出来的值就放入到标签里面的函数里面了,这样就调出星号来了。

自定义软件等级符号:

  现在我不想用这个符号了,应该如何自己定义自己的符号呢?其实,这个非常简单,只需要在这个函数里面替换上自己喜欢的符号即可,只是要注意一点,第一个for是我们推荐软件等级的符号,第二个for表示,我们发布的软件一般

的符号,只要注意这二点,那么,替换上你的符号就成功了,非常简单吧。

  织梦基地跟大家一起测试一下:

  我用对号“√”表示推荐等级,用叉号“ㄨ”表示软件不推荐的等级。

  这样上面的函数就变成了:

  1. if ( ! function_exists('GetRankStar'))
  2. {
  3.     function GetRankStar($rank)
  4.     {
  5.         $nstar = "";
  6.         for($i=1;$i<=$rank;$i++)
  7.         {
  8.             $nstar .= "√";
  9.         }
  10.         for($i;$i<=5;$i++)
  11.         {
  12.             $nstar .= "ㄨ";
  13.         }
  14.         return $nstar;
  15.     }
  16. }
复制代码

  生成一下软件内容页,效果如下图所示。

3.png

  现在我们已经自定义好了软件等级符号了。

  这是静态的符号,很多大站上面的软件推荐目前都是动态的,也就是软件的等级是用户评论的,这样的就比织梦现在这种固定的用户体验度好,因为,只有用户说了好才是好的。织梦基地也有这个插件,如果喜欢用动态的,那么,请到本站直接下载。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|织梦二次开发

GMT+8, 2019-9-17 20:47 , Processed in 0.236286 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表