嘿!自定义面板来了!
今天晚上有时间又给Fallever做了些更新。那就是本博客开始支持自定义面板了。效果请看右边的”我看我听我读“。一句话说明白就是博主可以自已定义一些自己喜欢的小面板放到自己的博客上。下一次更新将把原来系统默认的好几个面板改成真正的面板让用户有选择地显示。
某些人别听成了自定义模板了,这一次是面板,下一次更新的时候就应该是模板了。我对面板(Panel)的定义是博客右边或左边那些一块块如“最新评论”、“标签”这一些。而模板则是整个页面的样子。为彰显个性,我自私点先把自定义面板给作了,可怜的捞就再耐心等一下自定义模板吧。
照旧例还是讲一下实现的过程:
首先是对面板的抽象,Panel即指页面上一些小块的元素,如搜索、最新评论、标签等这些小块都叫做面板(Panel) 。这些面板我将其抽象为模板+数据。
Panel可以分为两种,一种是静态的面板,纯数据,也可想成是纯模板,即是不需要动态生成内容的,由用户将最终的内容 (Html代码)填到Panel中。Panel直接显示这些源码即可。第二种是动态的面板,包括了完整的模板和数据,这些数据是在页面显示期间动态加载并 填充到模板的。
第一种Panel实现容易。而第二种Panel的实现要在请求期间获得数据,必须通过特定的方法(函数)来执行,返回有意义的数据。然后用这些数据来填充模板。而这个函数要接收按某种约定的参数来获取数据,最终应该返回一个字典。第二种Panel的维护和开发通常由博客开发人员来做,而最终用户通常是使用第一种。
由于时间的关系,今天只实现了一种Panel的效果,但在设计上已兼容了第二种。我添加了一个模型Panel,关键属性有Template、Method及Html,Template代表模板,Html代表最终结果,Method是第二种面板运行是获取数据的方法,这个方法要实现了上面说的约定的某个接口,再有就是一些位置相关的属性、标题属性等。模型与表建完之后修改一下Decorator和页面,功能总算可以用了。借Django的管理界面加了一条数据,就是现在看到的豆瓣提供的”豆瓣收藏秀“。
下一次把第二种Panel也实现后贴代码。
编程
jeff
0
空间