老夫维护的 mindoc 的分支版本,里面有个功能是可以把某个项目 pin 到起始页的前部,类似于快捷启动。
前两天突然发现有的项目上不会出现我添加上的 pin/unpin 的开关按钮。昨晚跟了一下,发现原来是由于项目多了以后分页导致的。分页获取到的项目,组合前端 HTML 时没有把 pin 相关的代码加上。分页返回的模板文件是 /views/items/home_list.tpl
,抽个时间想法补上应该就可以了。比较奇怪原来为什么没有在起始页中复用这一段模板代码。
具体解决方案是:
1. 把 /views/home/index.tpl
中 $(".pin-tag").each
的那一段脚本包装成函数 updatePinStatus()
,页面加载时执行一次调用;getItemBook()
内也需要调用;
2. 在 /views/home/index.tpl
中修订 pin()
函数,将 pinListItemHtml
字符串中的 div
元素的 class
属性,除 list-item
外增加 pin-tag
(因为 updatePinStatus()
隐藏 pin 图标的依据就是遍历带有 pin-tag
的元素);
3. 在 /views/items/home_list.tpl
中的 dt
元素里加入
1 2 3 |
<div title="置顶" id="item_pin_{{$item.Identify}}" onclick="pin('{{$item.Identify}}')" style="cursor:pointer;position:absolute;top:5px;left:10px;z-index:100;width:50px;height:30px;color:#f0ad4e;"> <i class="fa fa-heart-o"></i> </div> |
4. 在 /views/items/home_list.tpl
中的 dt
和 dd
元素里,给封面图的 img
元素和超链接 a
元素加上 id(前缀分别为 item_img_
和 img_a_
);
5. /views/items/list.tpl
中的内容,是否跟 home_list.tpl
同步处理需要再看一下。