Bludit简单二开记录_自定义字段_修改调用经验等

Bludit简单二次开发及使用心得记录

曾用这个系统做了一套秒杀API小项目,所以顺便分享一下

增加用户自定义字段方法

几个关键文件

/bl-kernel/下 不带s负责调用 带s负责保存

/bl-kernel/admin/views/ 下 负责后台表单及回调
\bl-kernel\admin\themes\booty\html\navbar.php //后台菜单 移动端
\bl-kernel\admin\themes\booty\html\sidebar.php //后台菜单

表单中jsid和name一定要唯一不然不会传值保存不了

**/bl-kernel/**users.class.php

​ 这是后台保存时负责保存到数据库处理的 主管处理

/bl-kernel/user.class.php

​ 这是负责后台调用数据库及api调用显示的 主管显示

/bl-kernel/admin/views/edit-user.php

​ 这是后台编辑界面表单显示

bl-languages/zh_CN.json

​ 负责语言翻译

直接复制相对于位置的一个vk方法 增加就是

/bl-kernel/admin/views/

​ 负责后台主题目录

/bl-kernel/admin/views/users.php

​ 负责用户列表

bl-kernel/admin/views/dashboard.php

​ 负责控制面板首页

/bl-kernel/admin/views/edit-content.php

​ 负责内容编辑

/bl-kernel/pages.class.php

内容处理保存

/bl-kernel/pagex.class.php

内容回显调用

编辑/bl-kernel/boot/variables.php文件来更改它。将ADMIN_URI_FILTER常数更改为您自己选择的值

​ 修改管理员地址

\admin\themes\booty\html\navbar.php sidebar.php

​ 负责后台响应式菜单 sidebar.php为pc端

\bl-kernel\functions.php

​ 负责库函数 例如在后台首页调用buildParent 会调用文章

​ //返回一个将所有父页面作为页面对象的数组

​ //页面按系统设置顺序排列

​ 获取栏目信息函数 getCategories

​ 获取页面信息函数 buildParentPages

\bl-kernel\pages.class.php

​ 他还负责数据库操作函数 getdb类

​ (getDB、getAutosaveDB、getScheduledDB、getStickyDB、getPublishedDB、getPageDB、getStaticDB、getDraftDB)

文章几种状态

sticky 置顶

static 静态

published 普通

draft 草稿

自创草稿函数buildDraftPages 放到函数库文件 让他在控制面板调用草稿即可

bl-kernel\functions.php

function buildDraftPages() {
    global $pages;

    $list = array();
    $pagesKey = $pages->getDraftDB();
    foreach ($pagesKey as $pageKey) {
        try {
            $page = new Page($pageKey);
            array_push($list, $page);
        } catch (Exception $e) {
            // continue
        }
    }

    return $list;
}

调用方式 内容字段都可以调取出来 我在这里调用/bl-kernel/admin/views/dashboard.php

<!--draft-->
<?php
    $lanmu = buildDraftPages();
    foreach ($lanmu as $lanmu) {
        echo '<li class="list-group-item">'.$lanmu->title().'内容:'.$lanmu->content().'</li>';
}
?>

同理 如果新建一个类别 应该可以实现文章的多样化管理 多种需求

直接调取栏目代码

<!--categor-->
<?php
foreach ($categories->keys() as $key) {
    $category = new Category($key);
    echo '<tr>';
    echo '<td><a href="'.HTML_PATH_ADMIN_ROOT.'edit-category/'.$key.'">'.$category->name().'</a></td>';
    echo '<td><a href="'.$category->permalink().'">'.$url->filters('category', false).$key.'</a></td>';
    echo '</tr>';
}

?>

api操作系统设置的方法

http://网址/api/settings?token=6242e9013f460df00f4bd55daca6f9bc&authentication=68056b5d90cad9916a60be81e1d04b8a

设置这个东西 不能只改一个字段否则一切还原

编辑用户字段 主商品选项列表显示商品名及已选判断

echo '<div class="form-group row"><label for="jszgpid" class="col-sm-2 col-form-label">主攻商品id</label><div class="col-sm-10"><select id="jszgpid" name="zgpid" class="custom-select ">';
foreach ($parents as $parent) {
    if ($parent->key()==$user->zgpid()){
    echo'<option selected="" value="'.$parent->key().'">'.$parent->title().'</option>';
} elseif($parent->title()!="") {
    echo'<option  value="'.$parent->key().'">'.$parent->title().'</option>';
} elseif ($user->zgpid()=='00'){
    echo'<option selected="" value="00">不秒杀</option>';
} elseif ($user->zgpid()!='00'){
    echo'<option value="00">不秒杀</option>';
}
}
echo'</select><small class="form-text text-muted">必选,表示整点商品 全天通用</small></div></div>';