php - 如何在 CMS 中排序页面?

标签 php mysql database-design

我为我的一位客户编写了一个简单的 CMS,专门满足他的需要(没有他永远不会使用的主流内容管理系统的膨胀)。

CMS 使他能够创建和管理两种类型的内容:页面和新闻(显示在边栏中的短消息)。

页面按字母顺序显示在网站的导航菜单中。我的客户希望能够按照自定义顺序自行对页面进行排序。

以编程方式执行此操作的最佳方法是什么?我正在考虑在页面表中添加一个名为“优先级”的列。这将是一个数字,页面将根据该数字升序或降序排序。客户可以为每个页面编辑这个数字吗?

只是好奇你对此有何看法?有一个更好的方法吗?一些用于此目的的设计模式?

最佳答案

我个人使用 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(","));
}

在服务器上:

if(isset($_REQUEST["imageSort"]) && $_REQUEST["imageSort"] != "") {
    $imageIdList = explode(",", $_REQUEST["imageSort"]);

    for($i = 0; $i < count($imageIdList); $i++) {
        $this->setImagePriority($imageIdList[$i], $i+1);
    }
}

它可能比一个漂亮的设计模式更“快速且肮脏”,但它确实有效。

关于php - 如何在 CMS 中排序页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1688591/

相关文章:

mysql - Yii2 合并查询,如 yii1 中的 cdbcriteria

database - ER图,这是允许的吗?

javascript - onChange 函数更改表中显示的数据

php - 如何以 JSON 形式传输字典

java - hibernate @OneToMany错误: Duplicate entry '0' for key 'PRIMARY'

php - 在 mysql_query 函数内传递 PHP 变量

sql - Rails ActiveRecord 和数据库规范化

mysql - 数据库设计 : use composite key as FK, 标志数据共享?

javascript - Uncaught ReferenceError : funcName is not defined

php - file_get_contents ('php://input' ) 总是返回一个空字符串