Ric*_*nop 2 php mysql database-design
我为我的一个客户编写了一个简单的CMS,它专门满足他的需求(没有他永远不会使用的主流内容管理系统).
CMS使他能够创建和管理两种类型的内容:页面和新闻(侧边栏中显示的短消息).
页面按字母顺序显示在网站的导航菜单中.我的客户希望能够以自定义顺序对页面进行排序.
以编程方式执行此操作的最佳方法是什么?我正在考虑在页面表中添加一个名为"priority"的列.它将是一个数字,页面将根据此数字按升序或降序排序.客户可以为每个页面编辑这个号码吗?
只是好奇你对此有何看法?有一个更好的方法吗?为此目的的一些设计模式?
我个人使用jQuery ui可排序插件.客户端可以从列表中拖放项目,更改顺序.
接下来,我再次使用jQuery循环遍历项目列表,编译id的CSV列表并将其发送到服务器.
var imageList;
function init() {
imageList = $("#imagelist");
if(imageList.length > 0) {
imageList.sortable({stop:onStopSorting});
}
}
function onStopSorting() {
var datas = imageList.find("span.data");
var result = new Array();
for(var i = 0; i < datas.length; i++) {
result.push(datas.eq(i).html());
}
$("#imageSort").val(result.join(","));
}
Run Code Online (Sandbox Code Playgroud)
并在服务器上:
if(isset($_REQUEST["imageSort"]) && $_REQUEST["imageSort"] != "") {
$imageIdList = explode(",", $_REQUEST["imageSort"]);
for($i = 0; $i < count($imageIdList); $i++) {
$this->setImagePriority($imageIdList[$i], $i+1);
}
}
Run Code Online (Sandbox Code Playgroud)
它可能比一个漂亮的设计模式更"快"'脏,但它的工作原理.