ModStartCMS

基于 Laravel 的模块化后台系统框架
授权协议 Apache
开发语言 PHP
所属分类 Web应用开发、 后台管理系统(模板)
软件类型 开源软件
地区 国产
投 递 者 常枫涟
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。

系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用

ModStart 致力于服务开发者,为开发者节省时间,让大家有更多的时间读书、健身、开源、投资、帮朋友、陪家人,感谢您支持我们的开源事业。

技术栈

特性

  • 简洁优雅、灵活可扩展
  • 后台RBAC权限管理
  • Ajax页面无刷新
  • 组件按需加载静态资源
  • 内置丰富的表格常用功能
  • 内置文件上传,无需繁琐的开发
  • 模块市场,只需在管理页面点击鼠标即可完成插件的安装、更新和卸载等操作

功能一览

加入我们

如果您对这个项目感兴趣,非常欢迎加入项目开发团队,参与这个项目的功能维护与开发。

欢迎任何形式的贡献(包括但不限于以下):

  • 贡献代码
  • 完善文档
  • 撰写教程
  • 完善注释
  • ...

安装

环境要求

  • Laravel 5.1 版本

    • PHP 5.6 PHP 7.0
    • MySQL >=5.0
    • PHP ExtensionFileinfo
    • Apache/Nginx
  • Laravel 9.0 版本

    • PHP 8.0 PHP 8.1
    • MySQL >=5.0
    • PHP ExtensionFileinfo
    • Apache/Nginx

安装步骤

  1. 配置 apache/nginx 服务器,请将网站的根目录配置到 <网站目录>/public
  2. 访问 http://www.xxx.com/install.php
  3. 使用安装引导向导进行安装

Nginx参考配置

server {
    listen       80;
    server_name  xx.com;x
    charset utf-8;
    index index.php index.html;
    root /var/www/html/xxx.com/public;
    autoindex off;
    location ^~ /.git {
        deny all;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  PHP_VALUE  "open_basedir=/var/www/html/xxx.com/:/tmp/:/var/tmp/";
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ \.(gif|jpg|jpeg|png|bmp|ico|css|js)$ {
       expires max;
    }
    location ~* \.(eot|ttf|woff|woff2)$ {
        add_header Access-Control-Allow-Origin '*';
    }
}

Apache参考配置

<VirtualHost *:80>
      ServerName xxx.com
      DocumentRoot d:/wwwroot/xxx.com/public
</VirtualHost>

集成环境

环境预检

为方便系统环境快速配置,我们提供了服务器端安装环境预检程序。使用方式如下:

  1. 通过连接下载文件 https://modstart.com/env_check.zip ,解压出 env_check.php 文件。
  2.  env_check.php 文件上传到服务器空间,配置通过访问 http://www.xxx.com/env_check.php 来查看安装环境是否配置成功,如果环境预检成功,可以看到如下提示。

升级指南

ModStart 的升级需要执行以下基本步骤,请确保每个步骤正确。

说明:升级前请全量备份网站数据库和代码,避免升级操作有误造成系统不能正常运行。

自动升级

从1.5.0开始,系统提供自动升级功能。当有新版本出现时,在后台可以通过自动升级操作一键升级。

在自动升级前请备份好旧的系统数据,避免升级失败造成的数据丢失等情况。

手动升级

1 旧的系统备份

假如旧系统的部署目录为 /wwwroot/test.com, 请重新命名为 /wwwroot/test.com.bk

Linux参考命令

mv /wwwroot/test.com /wwwroot/test.com.bk

Windows参考操作

请按照描述自行操作

2 解压最新的代码

解压最新的代码到 /wwwroot/test.com

Linux参考命令

mkdir -p /wwwroot/test.com
cp xxx.zip /wwwroot/test.com
cd /wwwroot/test.com
unzip xxx.zip

Windows参考操作

请按照描述自行操作

3 迁移自安装模块

如果您的系统不是行业定制版,可能有些模块是您自行安装的,这时需要将 module/ 目录中的自安装模块复制到升级后的系统中。

Linux参考命令

cp -av /wwwroot/test.com.bk/module/xxx /wwwroot/test.com/module

Windows参考操作

请按照描述自行操作

4 复制配置文件

从老的项目代码中复制以下配置文件到新的代码中。

  • 配置文件:.env
  • 上传文件:public/data

Linux参考命令

cp -av /wwwroot/test.com.bk/.env /wwwroot/test.com/
cp -av /wwwroot/test.com.bk/public/data /wwwroot/test.com/public/

Windows参考操作

请按照描述自行操作

5 升级数据库

说明:系统的升级会伴随着数据库字段和系统配置的升级,系统的版本发布都会包含历史系统的所有操作,执行该步骤可以升级系统数据库字段、操作等

Linux参考命令

php /wwwroot/test.com/artisan migrate
php /wwwroot/test.com/artisan modstart:module-install-all 

6 清除缓存并完成升级

  • 如果您启用了 Redis 等外部缓存依赖,请清除缓存后再重新访问系统。
  • 如果您使用的是系统自带的文件缓存,直接访问新系统。

快速开始

在日常开发中,最常见的即是增删改查代码,使用ModStart开发此类功能,会变得非常简单。

下面将会给大家介绍 ModStart 的使用方法,以及一个增删改查页面的基本构成。通过学习下面的内容将可以帮助大家快速理解这个系统的基本使用方法。

创建数据表

在Laravel的迁移目录创建数据库迁移文件

class CreateNews extends Migration
{
    public function up()
    {
            Schema::create('news', function (Blueprint $table) {
                $table->increments('id');
                $table->timestamps();
                $table->string('title', 200)->nullable()->comment('');
                $table->string('cover', 200)->nullable()->comment('');
                $table->string('summary', 200)->nullable()->comment('');
                $table->text('content')->nullable()->comment('');
            });
        }
    }
    public function down()
    {
    }
}

创建控制器

增加路由控制器代码,同时按照

class NewsController extends Controller
{
    use HasAdminQuickCRUD;
    protected function crud(AdminCRUDBuilder $builder)
    {
        $builder
            ->init('news')
            ->field(function ($builder) {
                $builder->id('id','ID');
                $builder->text('title', '名称');
                $builder->image('cover', '封面');
                $builder->textarea('summary', '摘要');
                $builder->richHtml('content', '内容');
                $builder->display('created_at', '创建时间');
                $builder->display('updated_at', '更新时间');
            })
            ->gridFilter(function (GridFilter $filter) {
                $filter->eq('id', 'ID');
                $filter->like('title', '标题');
            })
            ->title('新闻管理');
    }
}

增加路由和导航

 routes.php 增加路由信息

$router->match(['get', 'post'], 'news/news', 'NewsController@index');
$router->match(['get', 'post'], 'news/news/add', 'NewsController@add');
$router->match(['get', 'post'], 'news/news/edit', 'NewsController@edit');
$router->match(['get', 'post'], 'news/news/delete', 'NewsController@delete');
$router->match(['get', 'post'], 'news/news/show', 'NewsController@show')

; ModuleServiceProvider.php 中注册菜单信息

AdminMenu::register(function () {
  return [
    [
      'title' => '新闻管理',
      'icon' => 'list',
      'sort' => 150,
      'url' => '\App\Admin\Controller\NewsController@index',
    ]
  ];
});

开发完成

这样一个简单的增删改查页面就开发完成了

开发前必读

开发前的配置

开发环境请打开 debug 模式(即在 .env 文件中设置 APP_DEBUG=true 

公共样式

ModStart 使用了一些基础样式对页面进行布局,既简单又强大,开始开发前需要对此有所了解。

公共样式对编写页面组件非常有帮助,能显著提高开发效率,建议编写组件前先查阅一遍文档。

LICENSE

Apache 2.0

  • 在开发模块之前,请在模块市场自行安装《开发示例程序》,该示例中涵盖了几乎所有模块开发规范和技巧。 开发示例程序: https://modstart.com/m/Demo(opens new window) 开发示例程序会不断更新,请随时查看最新的开发示例程序。 前台开发→Web 前台代码 Routes、Controller 都应放在 Web 目录中。 后台开发→Admin 前台代码 Routes、

  • Nginx参考配置 server { listen 80; server_name xx.com;x charset utf-8; index index.php index.html; root /var/www/html/xxx.com/public; autoindex off; location ^~ /.git {

  • ModStartCMS 管理系统 ModStartCMS 发布 v2.3.0 版本,新功能和 Bug 修复累计 1 3项,界面优化,模块依赖增强。 ·[新功能] 升级页面登录内容优化 ·[新功能] HTML富文本嵌套Iframe显示尺寸问题 ·[新功能] 后台用户管理增加重置密码、发送消息功能、详情显示 ·[新功能] 别名「不能是纯数字」提醒和正则校验 ·[新功能] 模块版本依赖检测方法 ·[新功

 相关资料
  • 本文向大家介绍详解基于Bootstrap扁平化的后台框架Ace,包括了详解基于Bootstrap扁平化的后台框架Ace的使用技巧和注意事项,需要的朋友参考一下 最近一段时间在做一个管理系统,在网上找了很久的前端展示框架,终于找到一款基于Bootstrap的后台管理系统模版:Ace。Bootstrap是Twitter 于2010年开发出来的前端框架,用过的同学应该知道,这款前端框架不仅界面很美观,而

  • 我试图用双积分动力学的形式来解决一个简单的最短时间最优控制问题, GEKKO优化框架如下: 我想做的是用梯形积分形成一个等式约束系统,然后用GEKKO求解这个系统的最优控制输入。但是,使用函数定义, 结合平等制约制度, 给了我以下的错误, 我在上面的代码片段中添加了两行注释代码,这将允许程序正确运行,但我希望避免将每个方程分开,因为我想将其扩展到处理更复杂的系统动力学的问题,并使用更复杂的配置方法

  • 伴随着移动互联的大潮,当今越来越多的网站已经从网页模式进化到了 Webapp 模式。它们运行在现代的高级浏览器里,使用 HTML5、 CSS3、 ES6 等更新的技术来开发丰富的功能,网页已经不仅仅是完成浏览的基本需求,并且webapp通常是一个单页面应用,每一个视图通过异步的方式加载,这导致页面初始化和使用过程中会加载越来越多的 JavaScript 代码,这给前端开发的流程和资源组织带来了巨大

  • 模块系统 Rust有两个与模块 (module) 系统相关的独特术语:crate和module, 其中包装箱 (crate) 与其它语言中的 libary 或者 package 作用一样。 每个包装箱都有一个隐藏的根模块,在根模块下可以定义一个子模块树, 其路径采用::作为分隔符。包装箱由条目 (item) 构成,多个条目通过模块组织在一起。 定义模块 使用mod关键字定义我们的模块: // in

  • 概述 本章节介绍如何从一个系统的数据库设计模型出发,一步步设计一个系统。 在软件项目(尤其是外包软件项目)中,通常有两种情况: 客户提供软件需求书; 客户提供原型设计; 对于以上两种情况的项目,在开发的流程上是有很大的差别的,最大的差别就在于页面交互上。 客户提供软件需求书:页面数量及形态不确定,带来的复杂性也不确定;(所以,为了固化需求,通常会跟客户做出原型或者UI进行需求确认,跟客户的合同也会

  • function frameInitialized(); 执行完frameInitialize事件后,框架开始检查并处理运行环境,在执行frameInitialized事件时,框架已经完成的工作有: frameInitialize事件 系统运行目录的检查与创建 运行目录的检查与创建包括了以下工作: 在ROOT目录下创建临时目录Temp 在Temp目录下创建会话存放目录Session 在Temp目录

  • 本文向大家介绍ABP框架的体系结构及模块系统讲解,包括了ABP框架的体系结构及模块系统讲解的使用技巧和注意事项,需要的朋友参考一下 DDD分层 为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术。 为了实现分层的体系结构,ABP遵循DDD(领域驱动设计)的原则,将分为四个层次: 展现层(Presentation):提供一个用户界面,实现用户交互操作。 应用层(Applicati

  • 主要内容:模块系统特征,创建模块Java 9是一种称为模块的新型编程组件。模块是一个自我描述的代码和数据集合,并有一个名称来标识它。 模块系统特征 使用模块组件,Java 9中增加了以下增强功能 - 引入了一个新的可选阶段,即链接时间。这个阶段介于编译时间和运行时间之间。 在此阶段,可以组合和优化一组模块,使用jlink工具制作自定义运行时映像。 javac,jlink和java有额外的选项来指定模块路径,它们进一步定位模块的定