提交
93
WebResources/config.json
Normal file
@ -0,0 +1,93 @@
|
||||
/* 前后端通信相关的配置,注释只允许使用多行方式 */
|
||||
{
|
||||
/* 上传图片配置项 */
|
||||
"imageActionName": "uploadimage", /* 执行上传图片的action名称 */
|
||||
"imageFieldName": "upfile", /* 提交的图片表单名称 */
|
||||
"imageMaxSize": 8192000, /* 上传大小限制,单位B */
|
||||
"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
|
||||
"imageCompressEnable": true, /* 是否压缩图片,默认是true */
|
||||
"imageCompressBorder": 1600, /* 图片压缩最长边限制 */
|
||||
"imageInsertAlign": "none", /* 插入的图片浮动方式 */
|
||||
"imageUrlPrefix": "", /* 图片访问路径前缀 */
|
||||
"imagePathFormat": "/uploads/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||
/* {time}{rand:6} 会替换成原文件名,配置这项需要注意中文乱码问题 */
|
||||
/* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
|
||||
/* {time} 会替换成时间戳 */
|
||||
/* {yyyy} 会替换成四位年份 */
|
||||
/* {yy} 会替换成两位年份 */
|
||||
/* {mm} 会替换成两位月份 */
|
||||
/* {dd} 会替换成两位日期 */
|
||||
/* {hh} 会替换成两位小时 */
|
||||
/* {ii} 会替换成两位分钟 */
|
||||
/* {ss} 会替换成两位秒 */
|
||||
/* 非法字符 \ : * ? " < > | */
|
||||
/* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
|
||||
/* 涂鸦图片上传配置项 */
|
||||
"scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
|
||||
"scrawlFieldName": "upfile", /* 提交的图片表单名称 */
|
||||
"scrawlPathFormat": "/uploads/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||
"scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
|
||||
"scrawlUrlPrefix": "", /* 图片访问路径前缀 */
|
||||
"scrawlInsertAlign": "none",
|
||||
|
||||
/* 截图工具上传 */
|
||||
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
|
||||
"snapscreenPathFormat": "/uploads/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
|
||||
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
|
||||
|
||||
/* 抓取远程图片配置 */
|
||||
"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
|
||||
"catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
|
||||
"catcherFieldName": "source", /* 提交的图片列表表单名称 */
|
||||
"catcherPathFormat": "/uploads/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||
"catcherUrlPrefix": "", /* 图片访问路径前缀 */
|
||||
"catcherMaxSize": 2048000, /* 上传大小限制,单位B */
|
||||
"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
|
||||
|
||||
/* 上传视频配置 */
|
||||
"videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
|
||||
"videoFieldName": "upfile", /* 提交的视频表单名称 */
|
||||
"videoPathFormat": "/uploads/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||
"videoUrlPrefix": "", /* 视频访问路径前缀 */
|
||||
"videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */
|
||||
"videoAllowFiles": [
|
||||
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
|
||||
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
|
||||
|
||||
/* 上传文件配置 */
|
||||
"fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
|
||||
"fileFieldName": "upfile", /* 提交的文件表单名称 */
|
||||
"filePathFormat": "/uploads/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
|
||||
"fileUrlPrefix": "", /* 文件访问路径前缀 */
|
||||
"fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */
|
||||
"fileAllowFiles": [
|
||||
".png", ".jpg", ".jpeg", ".gif", ".bmp",
|
||||
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
|
||||
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
|
||||
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
|
||||
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
|
||||
], /* 上传文件格式显示 */
|
||||
|
||||
/* 列出指定目录下的图片 */
|
||||
"imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
|
||||
"imageManagerListPath": "/ueditor/jsp/upload/image/", /* 指定要列出图片的目录 */
|
||||
"imageManagerListSize": 20, /* 每次列出文件数量 */
|
||||
"imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
|
||||
"imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
|
||||
"imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
|
||||
|
||||
/* 列出指定目录下的文件 */
|
||||
"fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
|
||||
"fileManagerListPath": "/ueditor/jsp/upload/file/", /* 指定要列出文件的目录 */
|
||||
"fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
|
||||
"fileManagerListSize": 20, /* 每次列出文件数量 */
|
||||
"fileManagerAllowFiles": [
|
||||
".png", ".jpg", ".jpeg", ".gif", ".bmp",
|
||||
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
|
||||
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
|
||||
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
|
||||
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
|
||||
] /* 列出的文件类型 */
|
||||
|
||||
}
|
BIN
WebResources/templates/default_v2/img/logo.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
WebResources/templates/default_v2/img/logo1.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
838
WebResources/templates/default_v2/index.html
Normal file
@ -0,0 +1,838 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>华臻会计师事务所</title>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css">
|
||||
<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
|
||||
<style>
|
||||
/* Custom CSS for elements that need more styling than Tailwind provides */
|
||||
.hero-section {
|
||||
background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1589829545856-d10d557cf95f?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.practice-card:hover {
|
||||
transform: translateY(-10px);
|
||||
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.testimonial-card {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.testimonial-card:hover {
|
||||
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* Animation for the consultation button */
|
||||
@keyframes pulse {
|
||||
0% { transform: scale(1); }
|
||||
50% { transform: scale(1.05); }
|
||||
100% { transform: scale(1); }
|
||||
}
|
||||
|
||||
.pulse-button {
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
/*
|
||||
.nav-link:hover::after {
|
||||
width: 100%;
|
||||
}
|
||||
*/
|
||||
.nav-link::after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background: #c7951c;
|
||||
transition: width .3s;
|
||||
}
|
||||
|
||||
/* Dropdown transition */
|
||||
.group:hover .dropdown {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: translateY(10px);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
/* Mobile dropdown arrow rotation */
|
||||
.rotate-180 {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="font-sans">
|
||||
<!-- Top Announcement Bar -->
|
||||
<div class="bg-blue-900 text-white text-center py-2 px-4">
|
||||
<p class="text-sm md:text-base" style="text-align: left;">当前时间 <a href="#contact" class="font-semibold underline ml-2">Schedule Now</a></p>
|
||||
</div>
|
||||
<!-- Header/Navigation -->
|
||||
<header class="sticky top-0 z-50 bg-white shadow-sm">
|
||||
<div class="container mx-auto px-4 py-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex items-center">
|
||||
<img alt="华臻会计师事务所" src="{dreamer-cms:template /}\img\logo.png">
|
||||
<h1 class="text-2xl font-bold text-gray-800">华臻会计师事务所</h1>
|
||||
</div>
|
||||
|
||||
<nav class="hidden md:flex items-center space-x-8">
|
||||
<div class="relative">
|
||||
<input type="text" placeholder="搜索..." class="border border-gray-300 rounded-full py-2 px-4 w-48 focus:outline-none focus:ring-2 focus:ring-amber-500">
|
||||
<button class="absolute right-3 top-2 text-gray-400 hover:text-amber-700">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="relative group">
|
||||
<a href="#" class="nav-link text-gray-800 font-medium hover:text-amber-700 flex items-center">
|
||||
首页
|
||||
</a>
|
||||
|
||||
</div>
|
||||
{dreamer-cms:categoryartlist length="10"}
|
||||
<div class="relative group">
|
||||
<a href="#" class="nav-link text-gray-800 font-medium hover:text-amber-700 flex items-center">
|
||||
[field:typenamecn /]
|
||||
{dreamer-cms:if test="('true' eq [field:haschildren/])"}
|
||||
<i class="fas fa-chevron-down ml-1 text-xs mt-1 transition-transform group-hover:rotate-180"></i>
|
||||
{/dreamer-cms:if}
|
||||
</a>
|
||||
{dreamer-cms:if test="('true' eq [field:haschildren/])"}
|
||||
<div class="absolute left-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 hidden group-hover:block z-50">
|
||||
{dreamer-cms:channel}
|
||||
<a href="[field:typeurl /]" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">[field:typenamecn /]</a>
|
||||
{/dreamer-cms:channel}
|
||||
<!-- <a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">事务所简介</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">发展历程</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">荣誉资质</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">办公环境</a> -->
|
||||
</div>
|
||||
{/dreamer-cms:if}
|
||||
|
||||
</div>
|
||||
{/dreamer-cms:categoryartlist}
|
||||
|
||||
<!-- <div class="relative group">
|
||||
<a href="#" class="nav-link text-gray-800 font-medium hover:text-amber-700 flex items-center">
|
||||
关于我们 <i class="fas fa-chevron-down ml-1 text-xs mt-1 transition-transform group-hover:rotate-180"></i>
|
||||
</a>
|
||||
<div class="absolute left-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 hidden group-hover:block z-50">
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">事务所简介</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">发展历程</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">荣誉资质</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">办公环境</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative group">
|
||||
<a href="#" class="nav-link text-gray-800 font-medium hover:text-amber-700 flex items-center">
|
||||
业务领域 <i class="fas fa-chevron-down ml-1 text-xs mt-1 transition-transform group-hover:rotate-180"></i>
|
||||
</a>
|
||||
<div class="absolute left-0 mt-2 w-56 bg-white rounded-md shadow-lg py-1 hidden group-hover:block z-50">
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">刑事辩护</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">婚姻家事</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">公司法务</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">人身损害</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative group">
|
||||
<a href="#" class="nav-link text-gray-800 font-medium hover:text-amber-700 flex items-center">
|
||||
合作伙伴 <i class="fas fa-chevron-down ml-1 text-xs mt-1 transition-transform group-hover:rotate-180"></i>
|
||||
</a>
|
||||
<div class="absolute left-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 hidden group-hover:block z-50">
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">专业团队</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">合伙人</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">执业律师</a>
|
||||
</div> -->
|
||||
<!-- </div> -->
|
||||
<!--
|
||||
<div class="relative group">
|
||||
<a href="#" class="nav-link text-gray-800 font-medium hover:text-amber-700 flex items-center">
|
||||
新闻动态 <i class="fas fa-chevron-down ml-1 text-xs mt-1 transition-transform group-hover:rotate-180"></i>
|
||||
</a>
|
||||
<div class="absolute left-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 hidden group-hover:block z-50">
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">专业团队</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">合伙人</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">执业律师</a>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- <div class="relative group">
|
||||
<a href="#" class="nav-link text-gray-800 font-medium hover:text-amber-700 flex items-center">
|
||||
联系我们
|
||||
</a> -->
|
||||
<!-- <div class="absolute left-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 hidden group-hover:block z-50">
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">专业团队</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">合伙人</a>
|
||||
<a href="#" class="block px-4 py-2 text-gray-800 hover:bg-amber-50">执业律师</a>
|
||||
</div> -->
|
||||
<!-- </div> <button class="bg-amber-700 hover:bg-amber-800 text-white px-6 py-2 rounded-lg transition duration-300 shadow-lg">免费咨询</button> -->
|
||||
</nav>
|
||||
|
||||
<button id="mobile-menu-button" class="md:hidden text-gray-800 focus:outline-none">
|
||||
<i class="fas fa-bars text-2xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Mobile Menu -->
|
||||
<div id="mobile-menu" class="hidden md:hidden mt-4">
|
||||
<div class="flex flex-col space-y-4">
|
||||
<div class="relative mb-4">
|
||||
<input type="text" placeholder="搜索..." class="border border-gray-300 rounded-full py-2 px-4 w-full focus:outline-none focus:ring-2 focus:ring-amber-500">
|
||||
<button class="absolute right-3 top-2 text-gray-400 hover:text-amber-700">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
<a href="#" class="text-gray-800 font-medium hover:text-amber-700">主页</a>
|
||||
{dreamer-cms:categoryartlist length="10"}
|
||||
<div class="relative">
|
||||
<a href="#" class="text-gray-800 font-medium hover:text-amber-700 flex items-center justify-between">
|
||||
[field:typenamecn /]
|
||||
{dreamer-cms:if test="('true' eq [field:haschildren/])"}
|
||||
<i class="fas fa-chevron-down text-xs mt-1 dropdown-toggle"></i>
|
||||
{/dreamer-cms:if}
|
||||
</a>
|
||||
{dreamer-cms:if test="('true' eq [field:haschildren/])"}
|
||||
<div class="dropdown-mobile hidden ml-4 mt-2 space-y-2">
|
||||
{dreamer-cms:channel}
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">[field:typenamecn /]</a>
|
||||
{/dreamer-cms:channel}
|
||||
|
||||
<!-- <a href="#" class="block text-gray-700 hover:text-amber-700">Family Law</a>
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Corporate Law</a>
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Personal Injury</a> -->
|
||||
</div>
|
||||
{/dreamer-cms:if}
|
||||
|
||||
</div>
|
||||
{/dreamer-cms:categoryartlist}
|
||||
<div class="relative">
|
||||
<a href="#" class="text-gray-800 font-medium hover:text-amber-700 flex items-center justify-between">
|
||||
Practice Areas <i class="fas fa-chevron-down text-xs mt-1 dropdown-toggle"></i>
|
||||
</a>
|
||||
<div class="dropdown-mobile hidden ml-4 mt-2 space-y-2">
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Criminal Defense</a>
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Family Law</a>
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Corporate Law</a>
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Personal Injury</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative">
|
||||
<a href="#" class="text-gray-800 font-medium hover:text-amber-700 flex items-center justify-between">
|
||||
Attorneys <i class="fas fa-chevron-down text-xs mt-1 dropdown-toggle"></i>
|
||||
</a>
|
||||
<div class="dropdown-mobile hidden ml-4 mt-2 space-y-2">
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Our Team</a>
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Partners</a>
|
||||
<a href="#" class="block text-gray-700 hover:text-amber-700">Associates</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#" class="text-gray-800 font-medium hover:text-amber-700">Contact</a>
|
||||
<button class="bg-amber-700 hover:bg-amber-800 text-white px-6 py-2 rounded-lg transition duration-300">联系我们</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Banner Carousel -->
|
||||
<div class="swiper-container relative">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide">
|
||||
<img src="https://images.unsplash.com/photo-1454165804606-c3d57bc86b40" class="w-full h-[500px] object-cover" alt="专业财税咨询服务">
|
||||
<div class="absolute inset-0 flex items-center justify-center bg-black bg-opacity-40">
|
||||
<div class="text-center text-white px-4">
|
||||
<h1 class="text-4xl md:text-5xl font-bold mb-4">专业财税咨询服务</h1>
|
||||
<p class="text-xl mb-8">为您提供全方位的解决方案</p>
|
||||
<button class="bg-blue-600 hover:bg-blue-700 text-white px-8 py-3 rounded">立即咨询</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<img src="https://images.unsplash.com/photo-1579621970563-ebec7560ff3e" class="w-full h-[500px] object-cover" alt="企业法律服务">
|
||||
<div class="absolute inset-0 flex items-center justify-center bg-black bg-opacity-40">
|
||||
<div class="text-center text-white px-4">
|
||||
<h1 class="text-4xl md:text-5xl font-bold mb-4">企业法律顾问服务</h1>
|
||||
<p class="text-xl mb-8">助力企业合规经营,防范法律风险</p>
|
||||
<button class="bg-blue-600 hover:bg-blue-700 text-white px-8 py-3 rounded">了解详情</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Add Pagination -->
|
||||
<div class="swiper-pagination"></div>
|
||||
<!-- Add Navigation -->
|
||||
<div class="swiper-button-next text-white"></div>
|
||||
<div class="swiper-button-prev text-white"></div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="container mx-auto text-center">
|
||||
<h1 class="text-4xl md:text-6xl font-bold mb-6">专业可信的<br> 律师服务</h1>
|
||||
<p class="text-xl md:text-2xl max-w-4xl mx-auto mb-8">我们的资深律师团队致力于提供专业定制化的法律解决方案。</p>
|
||||
<div class="flex flex-col sm:flex-row justify-center gap-4">
|
||||
<button class="bg-amber-700 hover:bg-amber-800 text-white px-8 py-4 text-lg rounded-lg transition duration-300 shadow-lg pulse-button font-semibold">预约咨询</button>
|
||||
<button class="bg-transparent hover:bg-white hover:text-gray-900 border-2 border-white text-white px-8 py-4 text-lg rounded-lg transition duration-300 font-semibold">了解更多</button>
|
||||
</div>
|
||||
</div> -->
|
||||
</section>
|
||||
|
||||
<!-- News Section -->
|
||||
<section class="py-16 bg-white">
|
||||
<div class="container mx-auto px-4">
|
||||
<div class="text-center mb-12">
|
||||
<h2 class="text-3xl font-bold">新闻公告</h2>
|
||||
<div class="w-24 h-1 bg-red-600 mx-auto mt-3"></div>
|
||||
</div>
|
||||
|
||||
<!-- News Tabs -->
|
||||
<div class="flex justify-center mb-8 overflow-x-auto">
|
||||
<div class="flex space-x-2 md:space-x-4">
|
||||
<button class="tab-btn px-4 py-2 rounded-full bg-blue-600 text-white font-medium whitespace-nowrap" data-tab="all">全部新闻</button>
|
||||
<button class="tab-btn px-4 py-2 rounded-full bg-gray-200 hover:bg-gray-300 text-gray-700 font-medium whitespace-nowrap" data-tab="awards">财税新闻</button>
|
||||
<button class="tab-btn px-4 py-2 rounded-full bg-gray-200 hover:bg-gray-300 text-gray-700 font-medium whitespace-nowrap" data-tab="events">活动讲座</button>
|
||||
<!-- <button class="tab-btn px-4 py-2 rounded-full bg-gray-200 hover:bg-gray-300 text-gray-700 font-medium whitespace-nowrap" data-tab="community">公益服务</button> -->
|
||||
<!-- <button class="tab-btn px-4 py-2 rounded-full bg-gray-200 hover:bg-gray-300 text-gray-700 font-medium whitespace-nowrap" data-tab="updates">法律动态</button> -->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Horizontal Scrollable News -->
|
||||
<div class="pb-6 overflow-x-auto">
|
||||
<div class="flex space-4 w-max gap-6 pb-4 h-[420px]">
|
||||
<!-- News Item 1 (Awards) -->
|
||||
<div class="w-72 flex-shrink-0 border rounded-lg overflow-hidden shadow-sm hover:shadow-md transition" data-tab="awards">
|
||||
<img src="https://images.unsplash.com/photo-1450101499163-c8848c66ca85" class="w-full h-48 object-cover" alt="新闻图片">
|
||||
<div class="p-6">
|
||||
<span class="text-sm text-gray-500">2023-06-15</span>
|
||||
<h3 class="text-xl font-semibold my-2">本所荣获2023年度最佳所称号</h3>
|
||||
<p class="text-gray-600 mb-4">在2023年度法律服务评选中,本所以卓越的服务和专业的团队获得客户一致好评...</p>
|
||||
<a href="#" class="text-red-600 font-medium flex items-center">
|
||||
查看更多 <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- News Item 2 (Events) -->
|
||||
<div class="w-72 flex-shrink-0 border rounded-lg overflow-hidden shadow-sm hover:shadow-md transition" data-tab="events">
|
||||
<img src="https://images.unsplash.com/photo-1581093458171-2d137ff5fe60" class="w-full h-48 object-cover" alt="新闻图片">
|
||||
<div class="p-6">
|
||||
<span class="text-sm text-gray-500">2023-05-28</span>
|
||||
<h3 class="text-xl font-semibold my-2">新劳动法专题讲座圆满举办</h3>
|
||||
<p class="text-gray-600 mb-4">5月25日,我所劳动法律事务部成功举办"新劳动法解读与企业合规管理"专题讲座...</p>
|
||||
<a href="#" class="text-red-600 font-medium flex items-center">
|
||||
查看更多 <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- News Item 3 (Community) -->
|
||||
<div class="w-72 flex-shrink-0 border rounded-lg overflow-hidden shadow-sm hover:shadow-md transition" data-tab="community">
|
||||
<img src="https://images.unsplash.com/photo-1522204523234-8729aa6e3d5f" class="w-full h-48 object-cover" alt="新闻图片">
|
||||
<div class="p-6">
|
||||
<span class="text-sm text-gray-500">2023-05-10</span>
|
||||
<h3 class="text-xl font-semibold my-2">公益法律服务进社区活动启动</h3>
|
||||
<p class="text-gray-600 mb-4">我所积极响应"法律服务下基层"号召,组织律师团队深入社区开展免费法律咨询活动...</p>
|
||||
<a href="#" class="text-red-600 font-medium flex items-center">
|
||||
查看更多 <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- News Item 4 (Updates) -->
|
||||
<div class="w-72 flex-shrink-0 border rounded-lg overflow-hidden shadow-sm hover:shadow-md transition" data-tab="updates">
|
||||
<img src="https://images.unsplash.com/photo-1606326608606-aa0b62935f2b" class="w-full h-48 object-cover" alt="新闻图片">
|
||||
<div class="p-6">
|
||||
<span class="text-sm text-gray-500">2023-04-22</span>
|
||||
<h3 class="text-xl font-semibold my-2">新公司法修订要点解析</h3>
|
||||
<p class="text-gray-600 mb-4">我所公司法律事务部对新修订的公司法进行详细解读,帮助企业更好适应新法...</p>
|
||||
<a href="#" class="text-red-600 font-medium flex items-center">
|
||||
查看更多 <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- News Item 5 (Awards) -->
|
||||
<div class="w-72 flex-shrink-0 border rounded-lg overflow-hidden shadow-sm hover:shadow-md transition" data-tab="awards">
|
||||
<img src="https://images.unsplash.com/photo-1469371670807-013ccf25f16a" class="w-full h-48 object-cover" alt="新闻图片">
|
||||
<div class="p-6">
|
||||
<span class="text-sm text-gray-500">2023-03-18</span>
|
||||
<h3 class="text-xl font-semibold my-2">王律师荣膺"年度十佳律师"称号</h3>
|
||||
<p class="text-gray-600 mb-4">我所合伙人王律师因在知识产权领域的卓越贡献,获得2023年度十佳律师称号...</p>
|
||||
<a href="#" class="text-blue-600 font-medium flex items-center">
|
||||
查看更多 <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center mt-10">
|
||||
<a href="#" class="inline-block border border-blue-600 text-blue-600 hover:bg-blue-600 hover:text-white px-6 py-3 rounded transition">更多公告</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Statistics Section -->
|
||||
|
||||
|
||||
<!-- Partners Section -->
|
||||
<section class="py-12 bg-gray-100">
|
||||
<div class="container mx-auto px-4">
|
||||
<div class="text-center mb-12">
|
||||
<h2 class="text-3xl font-bold">合作伙伴</h2>
|
||||
<div class="w-24 h-1 bg-red-600 mx-auto mt-3"></div>
|
||||
</div>
|
||||
<div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-8">
|
||||
<div class="flex items-center justify-center p-4 bg-white rounded-lg shadow-sm">
|
||||
<img src="https://via.placeholder.com/150x80?text=企业1" alt="合作伙伴" class="h-12 object-contain">
|
||||
</div>
|
||||
<div class="flex items-center justify-center p-4 bg-white rounded-lg shadow-sm">
|
||||
<img src="https://via.placeholder.com/150x80?text=企业2" alt="合作伙伴" class="h-12 object-contain">
|
||||
</div>
|
||||
<div class="flex items-center justify-center p-4 bg-white rounded-lg shadow-sm">
|
||||
<img src="https://via.placeholder.com/150x80?text=企业3" alt="合作伙伴" class="h-12 object-contain">
|
||||
</div>
|
||||
<div class="flex items-center justify-center p-4 bg-white rounded-lg shadow-sm">
|
||||
<img src="https://via.placeholder.com/150x80?text=企业4" alt="合作伙伴" class="h-12 object-contain">
|
||||
</div>
|
||||
<div class="flex items-center justify-center p-4 bg-white rounded-lg shadow-sm">
|
||||
<img src="https://via.placeholder.com/150x80?text=企业5" alt="合作伙伴" class="h-12 object-contain">
|
||||
</div>
|
||||
<div class="flex items-center justify-center p-4 bg-white rounded-lg shadow-sm">
|
||||
<img src="https://via.placeholder.com/150x80?text=企业6" alt="合作伙伴" class="h-12 object-contain">
|
||||
</div>
|
||||
<div class="flex items-center justify-center p-4 bg-white rounded-lg shadow-sm">
|
||||
<img src="https://via.placeholder.com/150x80?text=企业6" alt="合作伙伴" class="h-12 object-contain">
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center mt-10">
|
||||
<a href="#" class="inline-block border border-blue-600 text-blue-600 hover:bg-blue-600 hover:text-white px-6 py-3 rounded transition">查看更多</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Practice Areas -->
|
||||
<section class="py-20">
|
||||
<div class="container mx-auto px-4">
|
||||
<div class="text-center mb-16">
|
||||
<h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-4">业务领域</h2>
|
||||
<div class="w-24 h-1 bg-red-700 mx-auto"></div>
|
||||
<p class="text-gray-600 max-w-2xl mx-auto mt-4">业务领域</p>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||
<!-- Practice Area Card 1 -->
|
||||
<div class="practice-card bg-white p-8 rounded-lg shadow-md transition duration-300">
|
||||
<div class="text-blue-700 text-4xl mb-4">
|
||||
<i class="fas fa-gavel"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">Criminal Defense</h3>
|
||||
<p class="text-gray-600 mb-4">Protecting your rights when facing criminal charges with aggressive defense strategies tailored to your case.</p>
|
||||
<a href="#" class="text-blue-700 font-semibold flex items-center">
|
||||
查看更多 <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Practice Area Card 2 -->
|
||||
<div class="practice-card bg-white p-8 rounded-lg shadow-md transition duration-300">
|
||||
<div class="text-amber-700 text-4xl mb-4">
|
||||
<i class="fas fa-home"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">Real Estate Law</h3>
|
||||
<p class="text-gray-600 mb-4">Expert guidance for property transactions, disputes, and all matters related to real estate law and regulations.</p>
|
||||
<a href="#" class="text-amber-700 font-semibold flex items-center">
|
||||
Learn More <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Practice Area Card 3 -->
|
||||
<div class="practice-card bg-white p-8 rounded-lg shadow-md transition duration-300">
|
||||
<div class="text-amber-700 text-4xl mb-4">
|
||||
<i class="fas fa-user-tie"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">Corporate Law</h3>
|
||||
<p class="text-gray-600 mb-4">Comprehensive legal solutions for businesses including formation, compliance, mergers, and acquisitions.</p>
|
||||
<a href="#" class="text-amber-700 font-semibold flex items-center">
|
||||
Learn More <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Practice Area Card 4 -->
|
||||
<div class="practice-card bg-white p-8 rounded-lg shadow-md transition duration-300">
|
||||
<div class="text-amber-700 text-4xl mb-4">
|
||||
<i class="fas fa-heart"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">Family Law</h3>
|
||||
<p class="text-gray-600 mb-4">Sensitive handling of divorce, custody, adoption and other family matters with care and professionalism.</p>
|
||||
<a href="#" class="text-amber-700 font-semibold flex items-center">
|
||||
Learn More <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Practice Area Card 5 -->
|
||||
<div class="practice-card bg-white p-8 rounded-lg shadow-md transition duration-300">
|
||||
<div class="text-amber-700 text-4xl mb-4">
|
||||
<i class="fas fa-file-contract"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">Contract Law</h3>
|
||||
<p class="text-gray-600 mb-4">Drafting, reviewing, and enforcing contracts to protect your interests in all business dealings.</p>
|
||||
<a href="#" class="text-amber-700 font-semibold flex items-center">
|
||||
Learn More <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Practice Area Card 6 -->
|
||||
<div class="practice-card bg-white p-8 rounded-lg shadow-md transition duration-300">
|
||||
<div class="text-amber-700 text-4xl mb-4">
|
||||
<i class="fas fa-hand-holding-usd"></i>
|
||||
</div>
|
||||
<h3 class="text-xl font-bold mb-3 text-gray-800">Personal Injury</h3>
|
||||
<p class="text-gray-600 mb-4">Aggressive representation to secure maximum compensation for injuries caused by others' negligence.</p>
|
||||
<a href="#" class="text-amber-700 font-semibold flex items-center">
|
||||
Learn More <i class="fas fa-arrow-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- About Section -->
|
||||
<section class="bg-gray-100 py-20">
|
||||
<div class="container mx-auto px-4">
|
||||
<div class="flex flex-col lg:flex-row items-center">
|
||||
<div class="lg:w-1/2 mb-10 lg:mb-0 lg:pr-10">
|
||||
<img src="https://images.unsplash.com/photo-1589829545856-d10d557cf95f?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80" alt="Law firm meeting" class="rounded-lg shadow-lg w-full">
|
||||
</div>
|
||||
<div class="lg:w-1/2">
|
||||
<h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-6">关于我们</h2>
|
||||
<p class="text-gray-600 mb-4">Founded in 1987, Advocate & Partners has grown to become one of the most respected law firms in the region, known for our commitment to excellence, integrity, and client-focused service.</p>
|
||||
<p class="text-gray-600 mb-6">Our team of experienced attorneys works collaboratively to provide comprehensive legal solutions tailored to each client's unique needs and circumstances.</p>
|
||||
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-6 mb-8">
|
||||
<div class="flex items-start">
|
||||
<div class="bg-blue-700 text-white p-3 rounded-full mr-4">
|
||||
<i class="fas fa-check"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-bold text-gray-800 mb-1">Proven Track Record</h4>
|
||||
<p class="text-gray-600 text-sm">Over three decades of successful case outcomes</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<div class="bg-blue-700 text-white p-3 rounded-full mr-4">
|
||||
<i class="fas fa-check"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-bold text-gray-800 mb-1">Client-Centered Approach</h4>
|
||||
<p class="text-gray-600 text-sm">Personalized attention for every client</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<div class="bg-blue-700 text-white p-3 rounded-full mr-4">
|
||||
<i class="fas fa-check"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-bold text-gray-800 mb-1">Ethical Standards</h4>
|
||||
<p class="text-gray-600 text-sm">Highest professional ethics and integrity</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<div class="bg-blue-700 text-white p-3 rounded-full mr-4">
|
||||
<i class="fas fa-check"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="font-bold text-gray-800 mb-1">Experienced Team</h4>
|
||||
<p class="text-gray-600 text-sm">Recognized experts in multiple legal fields</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="bg-blue-700 hover:bg-blue-800 text-white px-8 py-3 rounded-lg transition duration-300 shadow-lg font-semibold">查看更多</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Testimonials -->
|
||||
<!-- <section class="py-20 bg-white">
|
||||
<div class="container mx-auto px-4">
|
||||
<div class="text-center mb-16">
|
||||
<h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-4">What Our Clients Say</h2>
|
||||
<div class="w-24 h-1 bg-amber-700 mx-auto"></div>
|
||||
<p class="text-gray-600 max-w-2xl mx-auto mt-4">Don't just take our word for it - here's what our clients have to say about their experiences with our firm.</p>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8"> -->
|
||||
<!-- Testimonial 1 -->
|
||||
<!-- <div class="testimonial-card bg-gray-50 p-8 rounded-lg">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="text-amber-700 text-3xl mr-2">
|
||||
<i class="fas fa-quote-left"></i>
|
||||
</div>
|
||||
<div class="text-yellow-400">
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-gray-600 mb-6">"Advocate & Partners handled my complex corporate litigation with exceptional professionalism. Their attention to detail and strategic approach resulted in a favorable outcome that exceeded my expectations."</p>
|
||||
<div class="flex items-center">
|
||||
<img src="https://randomuser.me/api/portraits/women/45.jpg" alt="Sarah Johnson" class="w-12 h-12 rounded-full mr-4">
|
||||
<div>
|
||||
<h4 class="font-bold text-gray-800">Sarah Johnson</h4>
|
||||
<p class="text-gray-600 text-sm">CEO, TechCorp</p>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- Testimonial 2 -->
|
||||
<!-- <div class="testimonial-card bg-gray-50 p-8 rounded-lg">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="text-amber-700 text-3xl mr-2">
|
||||
<i class="fas fa-quote-left"></i>
|
||||
</div>
|
||||
<div class="text-yellow-400">
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-gray-600 mb-6">"During my divorce, I was an emotional wreck. My attorney was not only legally brilliant but also provided the emotional support I needed during this difficult time. I couldn't have asked for better representation."</p>
|
||||
<div class="flex items-center">
|
||||
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Michael Chen" class="w-12 h-12 rounded-full mr-4">
|
||||
<div>
|
||||
<h4 class="font-bold text-gray-800">Michael Chen</h4>
|
||||
<p class="text-gray-600 text-sm">Financial Advisor</p>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- Testimonial 3 -->
|
||||
<!-- <div class="testimonial-card bg-gray-50 p-8 rounded-lg">
|
||||
<div class="flex items-center mb-4">
|
||||
<div class="text-amber-700 text-3xl mr-2">
|
||||
<i class="fas fa-quote-left"></i>
|
||||
</div>
|
||||
<div class="text-yellow-400">
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
<i class="fas fa-star"></i>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-gray-600 mb-6">"When our family faced a serious personal injury situation, Advocate & Partners fought tirelessly for us. They secured a settlement that ensured my mother's medical care would be covered for life. Truly life-changing."</p>
|
||||
<div class="flex items-center">
|
||||
<img src="https://randomuser.me/api/portraits/women/68.jpg" alt="Patricia Williams" class="w-12 h-12 rounded-full mr-4">
|
||||
<div>
|
||||
<h4 class="font-bold text-gray-800">Patricia Williams</h4>
|
||||
<p class="text-gray-600 text-sm">Nurse</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section> -->
|
||||
|
||||
<!-- Call to Action -->
|
||||
<section class="bg-blue-700 py-16">
|
||||
<div class="container mx-auto px-4 text-center text-white">
|
||||
<h2 class="text-3xl md:text-4xl font-bold mb-4">Ready to Get Started?</h2>
|
||||
<p class="text-xl max-w-3xl mx-auto mb-8">Schedule your free initial consultation today and let us help you navigate your legal challenges with confidence.</p>
|
||||
<button class="bg-white hover:bg-gray-100 text-amber-700 px-8 py-4 text-lg rounded-lg transition duration-300 shadow-lg font-semibold">Contact Us Now <i class="fas fa-arrow-right ml-2"></i></button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="bg-gray-900 text-white pt-16 pb-8">
|
||||
<div class="container mx-auto px-4" style="margin: 0 auto">
|
||||
<div class="grid grid-cols-1 md:grid-cols-5 gap-12">
|
||||
<!-- <div>
|
||||
<div class="flex items-center mb-6">
|
||||
<i class="fas fa-balance-scale text-3xl text-amber-700 mr-2"></i>
|
||||
<h3 class="text-2xl font-bold">Advocate<span class="text-amber-700">&</span>Partners</h3>
|
||||
</div>
|
||||
<p class="text-gray-400 mb-4">Providing exceptional legal services with integrity, expertise, and personalized attention since 1987.</p>
|
||||
<div class="flex space-x-4">
|
||||
<a href="#" class="text-gray-400 hover:text-amber-700"><i class="fab fa-facebook-f"></i></a>
|
||||
<a href="#" class="text-gray-400 hover:text-amber-700"><i class="fab fa-twitter"></i></a>
|
||||
<a href="#" class="text-gray-400 hover:text-amber-700"><i class="fab fa-linkedin-in"></i></a>
|
||||
<a href="#" class="text-gray-400 hover:text-amber-700"><i class="fab fa-instagram"></i></a>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div>
|
||||
<h4 class="text-lg font-semibold mb-6">Quick Links</h4>
|
||||
<ul class="space-y-3">
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Home</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">About Us</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Practice Areas</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Our Attorneys</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Blog</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Contact</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 class="text-lg font-semibold mb-6">Practice Areas</h4>
|
||||
<ul class="space-y-3">
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Criminal Law</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Family Law</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Corporate Law</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Personal Injury</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Real Estate Law</a></li>
|
||||
<li><a href="#" class="text-gray-400 hover:text-amber-700">Intellectual Property</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 class="text-lg font-semibold mb-6">Contact Us</h4>
|
||||
<address class="text-gray-400 not-italic">
|
||||
<div class="flex items-start mb-4">
|
||||
<i class="fas fa-map-marker-alt mt-1 mr-3 text-amber-700"></i>
|
||||
<p>123 Legal Street<br>Suite 300<br>New York, NY 10001</p>
|
||||
</div>
|
||||
<div class="flex items-center mb-4">
|
||||
<i class="fas fa-phone-alt mr-3 text-amber-700"></i>
|
||||
<p>(212) 555-1234</p>
|
||||
</div>
|
||||
<div class="flex items-center mb-4">
|
||||
<i class="fas fa-envelope mr-3 text-amber-700"></i>
|
||||
<p>contact@advocateandpartners.com</p>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<i class="fas fa-clock mr-3 text-amber-700"></i>
|
||||
<p>Mon-Fri: 9:00 AM - 6:00 PM</p>
|
||||
</div>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="border-t border-gray-800 mt-12 pt-8 text-center text-gray-400">
|
||||
<p>© 2023 Advocate & Partners. All Rights Reserved. | <a href="#" class="hover:text-amber-700">Privacy Policy</a> | <a href="#" class="hover:text-amber-700">Terms of Service</a></p>
|
||||
<p class="mt-2 text-sm">Attorney Advertising. Prior results do not guarantee similar outcomes.</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- JavaScript -->
|
||||
<script>
|
||||
// News tab functionality
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const tabBtns = document.querySelectorAll('.tab-btn');
|
||||
const newsItems = document.querySelectorAll('[data-tab]');
|
||||
|
||||
tabBtns.forEach(btn => {
|
||||
btn.addEventListener('click', function() {
|
||||
// Update active tab style
|
||||
tabBtns.forEach(b => {
|
||||
b.classList.remove('bg-red-600', 'text-white');
|
||||
b.classList.add('bg-gray-200', 'text-gray-700', 'hover:bg-gray-300');
|
||||
});
|
||||
this.classList.remove('bg-gray-200', 'text-gray-700', 'hover:bg-gray-300');
|
||||
this.classList.add('bg-red-600', 'text-white');
|
||||
|
||||
// Filter news items
|
||||
const tab = this.getAttribute('data-tab');
|
||||
newsItems.forEach(item => {
|
||||
if (tab === 'all' || item.getAttribute('data-tab') === tab) {
|
||||
item.style.display = 'block';
|
||||
} else {
|
||||
// item.style.display = 'none';
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Initialize - show all news initially
|
||||
newsItems.forEach(item => {
|
||||
item.style.display = 'flex'; // Changed to flex for horizontal scrolling
|
||||
});
|
||||
});
|
||||
// Mobile menu toggle and dropdown functionality
|
||||
document.getElementById('mobile-menu-button').addEventListener('click', function() {
|
||||
const menu = document.getElementById('mobile-menu');
|
||||
menu.classList.toggle('hidden');
|
||||
});
|
||||
|
||||
// Mobile dropdown toggle
|
||||
document.querySelectorAll('.dropdown-toggle').forEach(toggle => {
|
||||
toggle.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
const dropdown = this.parentElement.nextElementSibling;
|
||||
this.classList.toggle('rotate-180');
|
||||
dropdown.classList.toggle('hidden');
|
||||
});
|
||||
});
|
||||
|
||||
// Smooth scrolling for anchor links
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
document.querySelector(this.getAttribute('href')).scrollIntoView({
|
||||
behavior: 'smooth'
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Add shadow to header on scroll
|
||||
window.addEventListener('scroll', function() {
|
||||
const header = document.querySelector('header');
|
||||
if (window.scrollY > 50) {
|
||||
header.classList.add('shadow-lg');
|
||||
} else {
|
||||
header.classList.remove('shadow-lg');
|
||||
}
|
||||
});
|
||||
|
||||
// Animation for practice area cards when they come into view
|
||||
const observer = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
entry.target.style.opacity = 1;
|
||||
entry.target.style.transform = 'translateY(0)';
|
||||
}
|
||||
});
|
||||
}, { threshold: 0.1 });
|
||||
|
||||
const practiceCards = document.querySelectorAll('.practice-card');
|
||||
practiceCards.forEach(card => {
|
||||
card.style.opacity = 0;
|
||||
card.style.transform = 'translateY(20px)';
|
||||
card.style.transition = 'opacity 0.5s ease, transform 0.5s ease';
|
||||
observer.observe(card);
|
||||
});
|
||||
// Initialize Swiper
|
||||
const swiper = new Swiper('.swiper-container', {
|
||||
loop: true,
|
||||
autoplay: {
|
||||
delay: 5000,
|
||||
disableOnInteraction: false,
|
||||
},
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
clickable: true,
|
||||
},
|
||||
navigation: {
|
||||
nextEl: '.swiper-button-next',
|
||||
prevEl: '.swiper-button-prev',
|
||||
},
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
BIN
WebResources/uploads/20250610/1932279689639432192.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
WebResources/uploads/20250610/1932280306659315712.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
WebResources/uploads/20250610/1932280697643945984.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
WebResources/uploads/20250610/1932282973573959680.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
WebResources/uploads/20250610/1932330176581554176.jpg
Normal file
After Width: | Height: | Size: 865 KiB |
BIN
WebResources/uploads/20250610/1932330218751086592.jpg
Normal file
After Width: | Height: | Size: 3.8 MiB |
BIN
backend/.DS_Store
vendored
Normal file
8
backend/.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
22
backend/.idea/compiler.xml
generated
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<annotationProcessing>
|
||||
<profile default="true" name="Default" enabled="true" />
|
||||
<profile name="Maven default annotation processors profile" enabled="true">
|
||||
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||
<outputRelativeToContentRoot value="true" />
|
||||
<module name="cms" />
|
||||
<module name="backend" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
</component>
|
||||
<component name="JavacSettings">
|
||||
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
|
||||
<module name="backend" options="-parameters" />
|
||||
<module name="cms" options="-parameters" />
|
||||
<module name="dreamer_cms" options="-parameters" />
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
9
backend/.idea/dreamer_cms.iml
generated
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
6
backend/.idea/encodings.xml
generated
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
6
backend/.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@ -0,0 +1,6 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="JSHint" enabled="true" level="ERROR" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
35
backend/.idea/jarRepositories.xml
generated
Normal file
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RemoteRepositoriesConfiguration">
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Central Repository" />
|
||||
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Central Repository" />
|
||||
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Central Repository" />
|
||||
<option name="url" value="http://mirrors.cloud.tencent.com/nexus/repository/maven-public/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Maven Central repository" />
|
||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Central Repository" />
|
||||
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="jboss.community" />
|
||||
<option name="name" value="JBoss Community repository" />
|
||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||
</remote-repository>
|
||||
</component>
|
||||
</project>
|
16
backend/.idea/jsLinters/jshint.xml
generated
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JSHintConfiguration" version="2.13.6" use-config-file="true" use-custom-config-file="true" custom-config-file-path="$PROJECT_DIR$/src/main/resources/static/resource/js/editor.md-master/.jshintrc">
|
||||
<option bitwise="true" />
|
||||
<option browser="true" />
|
||||
<option curly="true" />
|
||||
<option eqeqeq="true" />
|
||||
<option forin="true" />
|
||||
<option maxerr="50" />
|
||||
<option noarg="true" />
|
||||
<option noempty="true" />
|
||||
<option nonew="true" />
|
||||
<option strict="true" />
|
||||
<option undef="true" />
|
||||
</component>
|
||||
</project>
|
12
backend/.idea/misc.xml
generated
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="corretto-17" project-jdk-type="JavaSDK" />
|
||||
</project>
|
7
backend/.idea/vcs.xml
generated
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
34
backend/Dockerfile
Normal file
@ -0,0 +1,34 @@
|
||||
FROM java:8
|
||||
|
||||
MAINTAINER www.iteachyou.cc<153095904@qq.com>
|
||||
|
||||
LABEL description="I Teach You, 我教你!- 专注于IT技术分享、免费教程、学习资源的博客。"
|
||||
|
||||
# 指定容器时区
|
||||
ENV TZ=Asia/Shanghai
|
||||
# 同步时间
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
# 创建工作目录
|
||||
RUN mkdir -p /dreamer_cms
|
||||
# 创建资源目录
|
||||
RUN mkdir -p /dreamer_cms/resources
|
||||
# 创建日志目录
|
||||
RUN mkdir -p /dreamer_cms/logs
|
||||
|
||||
# 切换工作目录
|
||||
WORKDIR /dreamer_cms
|
||||
|
||||
# 设置环境变量
|
||||
ENV SERVER_PORT=8888
|
||||
ENV RESOURCE_DIR=/dreamer_cms/resources
|
||||
|
||||
# 暴露端口
|
||||
EXPOSE ${SERVER_PORT}
|
||||
|
||||
# 将jar包复制到Dockerfile所在的相对目录下目录下,可以是URL,也可以是tar.gz(自动解压);(当使用本地目录为源目录时,推荐使用 COPY)
|
||||
# ADD是复制指定路径到容器路径,COPY是复制本地主机的路径到容器的路径。
|
||||
ADD ./target/dreamer-cms.jar ./
|
||||
|
||||
# 启动命令
|
||||
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dserver.port=${SERVER_PORT}", "-Dweb.resource-path=${RESOURCE_DIR}", "-jar", "dreamer-cms.jar > /dreamer_cms/logs/dreamer-cms.log"]
|
201
backend/LICENSE
Normal file
@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2022 I Teach You,我教你
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
129
backend/README.md
Normal file
@ -0,0 +1,129 @@
|
||||
<p align="center">
|
||||
<a href="https://www.iteachyou.cc/" target="_blank"><img src="https://oss.iteachyou.cc/logo.png" width="400" ></a>
|
||||
</p>
|
||||
|
||||
<div style="display: flex; justify-content: center;">
|
||||
|
||||
[](https://www.murphysec.com/dr/uURRBRDjHq7ttx9MvG)
|
||||
[](https://github.com/murphysecurity/murphysec/blob/master/LICENSE)
|
||||
[](https://gitee.com/isoftforce/dreamer_cms/stargazers)
|
||||
|
||||
</div>
|
||||
|
||||
# 梦想家内容管理系统(Dreamer CMS)
|
||||
|
||||
> 本人为个人开发者,精力和经济都有限,如有公司或个人想要商业使用,捐赠200即可,捐赠后,会将公司或个人名称列在下方捐赠列表,在列表中的企业或个人,即表示授权。
|
||||
|
||||
> 如未授权,根据软件使用协议,请务必保留官方版权。前后台页底必须保留 "Powered by I Teach You , 我教你!" 文字和链接!如未按要求保留官方版权且未授权用户,将依法追究法律责任。
|
||||
|
||||
> 鼓励大学毕业生在此开源项目基础上进行毕业设计项目开发,但请遵守开源协议并添加自己的开发和创新内容,且论文中应明确标注源码的来源;拿来就用主义者视为侵权。
|
||||
|
||||
当前版本:4.1.3
|
||||
|
||||
1. 梦想家CMS官网:http://cms.iteachyou.cc
|
||||
2. 梦想家CMS管理后台:http://cms.iteachyou.cc/admin
|
||||
- 演示账号:demo1
|
||||
- 演示密码:123456
|
||||
- 管理员:wangjn
|
||||
- 管理员密码:123456
|
||||
3. I Teach You,我教你! 官网:https://www.iteachyou.cc
|
||||
4. 模版标签开发教程请参考:http://doc.iteachyou.cc 或 https://iteachyou.gitee.io/dreamer_cms/
|
||||
|
||||
QQ交流群:
|
||||
- ①597652651(未满)
|
||||
- ②623605199(未满)
|
||||
- ③573574854(未满)
|
||||
|
||||
微信交流群:
|
||||
- 可添加群主微信好友,群主拉群;微信二维码见下方。
|
||||
|
||||
DreamerCMS(梦想家CMS内容管理系统)史上最精简的CMS系统,完全开源、完全免费。公开解决了快速搭建展示型网站(如:企业官网、技术博客、信息门户等)的框架体系,是电子政务、电信综合门户、企业信息门户、知识管理平台、电子商务平台的基础性软件系统。可以帮助政府、企业或组织灵活、准确、高效、智能地管理信息内容,实现信息的采集、加工、审核、发布、存储、检索、统计、分析、 反馈等整个信息生命周期的管理。采用时下最流行的Springboot+thymeleaf框架搭建,具有灵活小巧,配置简单,标签化模版,快速开发等特点。主要解决公司搭建网站成本高、投入大、周期长等问题,也可作为初创公司很好的基础技术框架。使用过程中不需要专业的后端技术开发技能,只要使用系统提供的模版标签,即可轻轻松松建设网站。
|
||||
|
||||
DreamerCMS从2.0.0版本开始采用了解析式引擎与编译式引擎并存的模式,由于在解析模版时,解析式引擎拥有巨大的优势,但对于动态浏览的互动性质的页面,编译式引擎更实用高效,DreamerCMS采用双引擎并存的模式,在保持标签风格一致性的同时,也保证将来开发更多互动模块时有更好的性能和更好的扩展。
|
||||
# 特点
|
||||
* 免费开源:基于APACHE 2.0开源协议,源代码完全开源;
|
||||
* 标签建站:不需要专业的后台开发技能,只要使用系统提供的标签,就能轻松建设网站;
|
||||
* 开发方便:支持在线上传模版包开发方便快捷;
|
||||
* 零代码量:真正实现“0”代码建站,后台代码一点都不需要动;
|
||||
* 每月更新:每月进行系统升级,分享更多好用的模版与插件。
|
||||
|
||||
# 面向对象
|
||||
* 政府:可以使用Dreamer CMS来快速构建政府门户;
|
||||
* 电信:可以使用Dreamer CMS来快速构建电信综合门户;
|
||||
* 企业:可以使用Dreamer CMS构建信息门户,知识管理平台,也可作为基础技术框架,是企业在创立初期很好的技术选型;
|
||||
* 个人开发者:可以使用Dreamer CMS承接外包项目;
|
||||
|
||||
# 技术框架
|
||||
* 核心框架:Spring Boot 2
|
||||
* 安全框架:Apache Shiro 1.9.1
|
||||
* 工具包:Hutool 5.8.5
|
||||
* 持久层框架:MyBatis 2.2.2
|
||||
* 日志管理:Logback
|
||||
* 模版框架:Thymeleaf
|
||||
* JS框架:jQuery,Bootstrap
|
||||
* CSS框架:Bootstrap
|
||||
* 富文本:Ueditor、editor.md
|
||||
|
||||
# 系统结构
|
||||

|
||||
|
||||
# 开发环境
|
||||
建议开发者使用以下环境,这样避免版本带来的问题
|
||||
* JDK:Jdk8
|
||||
* IDE:Spring Tool Suite 4(STS)或 IntelliJ IDEA
|
||||
* DB:Mysql 5.7,Windows配置安装Mysql5.7,请参考:https://www.iteachyou.cc/article/a1db138b4a89402ab50f3499edeb30c2
|
||||
* Redis:3.2+,Windows配置安装Redis教程,请参考:https://www.iteachyou.cc/article/4b0a638f65fa4fb1b9644cf461dba602
|
||||
* LomBok 项目需要使用Lombok支持,Lombok安装教程,请参考:https://www.iteachyou.cc/article/55ec2939c29147eca5bebabf19621655
|
||||
|
||||
# 快速入门
|
||||
CMS包括两个部分(代码部分、资源部分)代码不多说。资源就是图片、模版等,该目录在application.yml中web.resource-path配置项目中配置。视频教程:
|
||||
```
|
||||
Dreamer CMS后台使用教程:
|
||||
https://www.iteachyou.cc/list-6s3bg7tf/dreamercms/1/10
|
||||
Dreamer CMS模版开发教程:
|
||||
https://www.iteachyou.cc/list-l54xs53b/tempdev/1/10
|
||||
|
||||
百度网盘下载链接:
|
||||
https://pan.baidu.com/s/16nLVa44OkloL8sTpW6e2QQ 提取码:2c8i
|
||||
|
||||
在线观看视频地址:
|
||||
https://space.bilibili.com/482273402
|
||||
```
|
||||
1. 克隆项目到本地工作空间
|
||||
2. 导入Eclipse或Sts等开发工具(推荐使用Spring Tools Suite 4),项目需要使用Lombok支持,Lombok安装教程,请参考https://www.iteachyou.cc/article/55ec2939c29147eca5bebabf19621655
|
||||
3. 项目需要Redis,请自行修改application.yml中Redis配置
|
||||
4. 修改项目资源目录,application.yml文件web.resource-path配置项(如D:/dreamer-cms/)
|
||||
5. 导入数据库src/main/resources/db/db.sql,要求Mysql5.7版本,并修改application-(dev|prd).yml中数据配置
|
||||
6. 将项目src/main/resources/db/dreamer-cms.zip文件解压,保证解压后的目录路径的名称和资源目录一致
|
||||
7. 运行项目DreamerCMSApplication.java
|
||||
8. 网站首页:http://localhost:8888 项目管理后台:http://localhost:8888/admin
|
||||
9. 管理后台用户名:wangjn;密码:123456
|
||||
10. 模版标签开发教程请参考:http://doc.iteachyou.cc
|
||||
|
||||
# 捐赠详情
|
||||
|
||||
感谢各位大佬的支持,同时也感谢各位开发者为社区作出的贡献。同时也希望更多的用户来捐赠本项目。您的支持,是我一直坚持下去的动力,另外为大家提供使用文档( https://doc.iteachyou.cc )、教程( https://www.iteachyou.cc )的网站及服务器也需要运营维护,个人精力、经费都有限,希望大家多多理解!!!捐赠详情请移步:http://doc.iteachyou.cc/chapter10/DonationList.html
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td width="33.33%"><img src="https://oss.iteachyou.cc/20201201174329.png" /></td>
|
||||
<td width="33.33%"><img src="https://oss.iteachyou.cc/20201201174339.jpg" /></td>
|
||||
<td width="33.33%"><img src="https://oss.iteachyou.cc/20230327163517.jpg" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
# 系统美图
|
||||
|
||||
<img src="https://oss.iteachyou.cc/20190821102434.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190821102526.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190821102608.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190821102712.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190821102742.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190821102847.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190821102932.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190821103012.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190820092155.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190820092156.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190820092157.png"/>
|
||||
<img src="https://oss.iteachyou.cc/20190820092158.png"/>
|
1248
backend/docs/COPYRIGHT.html
Normal file
1248
backend/docs/chapter01/Designer.html
Normal file
11
backend/docs/chapter01/Designer.md
Normal file
@ -0,0 +1,11 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 设计师
|
||||
|
||||
<p>能够设计、制作Dreamer CMS程序模板的人员。</p>
|
||||
|
||||
|
1248
backend/docs/chapter01/Developer.html
Normal file
11
backend/docs/chapter01/Developer.md
Normal file
@ -0,0 +1,11 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 开发者
|
||||
|
||||
<p>能够设计、制作Dreamer CMS程序模板;并助能对Dreamer CMS后台程序进行二次开发的人员。</p>
|
||||
|
||||
|
10
backend/docs/chapter01/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 模板设计师要求
|
||||
<p>本章节介绍Dreamer CMS模板制作人员所需要的基本条件、所需相关技术。便于企业、单位招聘选择适合自身发展的从业人员及对员工进行定位、培训。</p>
|
||||
|
||||
|
1248
backend/docs/chapter01/index.html
Normal file
21
backend/docs/chapter02/README.md
Normal file
@ -0,0 +1,21 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 模板制作流程
|
||||
|
||||
<p>
|
||||
模板制作需要经过以下几个流程:
|
||||
</p>
|
||||
|
||||
1. 设计页面效果图,一般为PSD或者PNG格式的原图;
|
||||
2. 将页面效果图输出为HTML格式,后缀名为“.html”;
|
||||
3. 根据页面内容调用标签生成或者编写标签所需代码;
|
||||
4. 嵌套标签代码到输出页面对应位置;
|
||||
5. 测试调试模板文件,保证调用和设计效果一致;
|
||||
6. 将模板标签、文件上传到模板目录;
|
||||
7. 在系统设定模板目录,重新生成全站;
|
||||
|
||||
|
1252
backend/docs/chapter02/index.html
Normal file
1254
backend/docs/chapter03/Description.html
Normal file
17
backend/docs/chapter03/Description.md
Normal file
@ -0,0 +1,17 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 模板文件与功能说明
|
||||
|
||||
<p>
|
||||
DreamerCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于Dreamer CMS支持自定义表单模型,用户自定义新表单模型后,还需要按该模型的字段设计一套新的模板。
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
1260
backend/docs/chapter03/DesignAndUse.html
Normal file
23
backend/docs/chapter03/DesignAndUse.md
Normal file
@ -0,0 +1,23 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 概念,设计和使用模板
|
||||
|
||||
#### 封面模板
|
||||
<p>
|
||||
指网站主页或比较重要的栏目封面频道使用的模板(如关于我们、联系我们等),一般用“index_别名.html”命名,然后在网站后台栏目中进行设置类型为封面,封面模版为该文件名。
|
||||
</p>
|
||||
|
||||
#### 列表模板
|
||||
<p>
|
||||
指网站某个栏目的所有文章列表的模板(如新闻中心、产品中心等),一般用 “list_别名.html” 命名。
|
||||
</p>
|
||||
|
||||
#### 内容模板
|
||||
<p>
|
||||
表示文档查看页的模板,如文章模板,一般用 “article_别名.html” 命名。
|
||||
</p>
|
||||
|
1262
backend/docs/chapter03/NamingRules.html
Normal file
24
backend/docs/chapter03/NamingRules.md
Normal file
@ -0,0 +1,24 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 命名规则
|
||||
|
||||
#### 模板保存位置
|
||||
<p>
|
||||
模板目录在资源目录下,名为templates的文件夹即是模版目录。可以通过程序中application.yml中的web.resource-path配置项来配置。默认在
|
||||
<br />
|
||||
D:/dreamer-cms/templates/模版名(必须为英文,默认为default)/具体功能模板文件
|
||||
</p>
|
||||
|
||||
#### 模板文件命名规范
|
||||
* index_别名.html:表示栏目封面模板;
|
||||
* list_别名.htm:表示栏目列表模板;
|
||||
* article_别名.html:表示内容查看页(文档模板,包括专题查看页);
|
||||
* search.html:搜索结果列表模板;
|
||||
* index.html:主页模板;
|
||||
```html
|
||||
注: [别名]可以使用栏目名称的英文缩写。
|
||||
```
|
1248
backend/docs/chapter03/Other.html
Normal file
10
backend/docs/chapter03/Other.md
Normal file
@ -0,0 +1,10 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 其它模板说明
|
||||
<p>
|
||||
暂无
|
||||
</p>
|
22
backend/docs/chapter03/README.md
Normal file
@ -0,0 +1,22 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 模板目录
|
||||
|
||||
<p>
|
||||
系统的模板目录是可配置的,通过程序中的application.yml文件中的web.resource-path来指定资源根目录,默认为D:/dreamer-cms/,在资源根目录下templates内,便是模板目录的文件目录结构。
|
||||
</p>
|
||||
|
||||
/templates·········································································
|
||||
├─default··································································· 默认模板目录
|
||||
├─images······························································· 模板图片目录
|
||||
├─js······································································ 模板JS脚本目录
|
||||
├─fonts·································································· 模板字体目录
|
||||
├─css···································································· 模板CSS样式目录
|
||||
├─index.html··························································· 首页模板
|
||||
├─header.html························································· 页头模板
|
||||
├─footer.html··························································· 页尾模板
|
||||
└─···其它模版文件···
|
1253
backend/docs/chapter03/index.html
Normal file
1283
backend/docs/chapter04/CoreDoc.html
Normal file
46
backend/docs/chapter04/CoreDoc.md
Normal file
@ -0,0 +1,46 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 核心文件
|
||||
<p>
|
||||
模版引擎相关代码都在cc.iteachyou.cms.taglib包下,如下
|
||||
</p>
|
||||
|
||||
```html?linenums
|
||||
taglib
|
||||
annotation //注解包
|
||||
Tag.java //标签注解
|
||||
Attribute.java //属性注解
|
||||
enums //枚举包
|
||||
FieldEnum.java //字段正则枚举
|
||||
tags //标签解析包
|
||||
AbstractChannelTag.java
|
||||
AbstractListTag.java
|
||||
ArticleTag.java //文章标签
|
||||
AttachmentTag.java //附件标签
|
||||
CategoryTag.java //栏目标签
|
||||
ChannelArtListTag.java //栏目列表标签
|
||||
ChannelTag.java //频道标签
|
||||
GlobalTag.java //全局设置标签
|
||||
IfTag.java //判断标签
|
||||
IncludeTag.java //引入文件标签
|
||||
LabelTag.java //关键字标签
|
||||
ListTag.java //列表标签
|
||||
LocationTag.java //当前位置标签
|
||||
PageListTag.java //分页列表标签
|
||||
PaginationTag.java //分页显示标签
|
||||
PrevNextTag.java //上一篇、下一篇标签
|
||||
SqlTag.java //自定义Sql标签
|
||||
TemplateTag.java //模版目录标签
|
||||
TopCategoryTag.java //顶级栏目标签
|
||||
TypeTag.java //单个频道标签
|
||||
VariableTag.java //变量标签
|
||||
utils
|
||||
PinyinUtils.java //汉字转拼音工具类
|
||||
RegexUtil.java //正则工具类
|
||||
IParse.java //接口
|
||||
ParseEngine.java //解析引擎
|
||||
```
|
1258
backend/docs/chapter04/Grammar.html
Normal file
21
backend/docs/chapter04/Grammar.md
Normal file
@ -0,0 +1,21 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 模板语法
|
||||
<p>
|
||||
DreamerCMS模板引擎是一种使用XML名字空间形式的模板解析器,使用解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活。
|
||||
</p>
|
||||
|
||||
#### 代码样式
|
||||
<p>
|
||||
{dreamer-cms:标记名称 属性="值" /}<br />
|
||||
{dreamer-cms:标记名称 属性="值"}{/dreamer-cms:标记名称}<br />
|
||||
{dreamer-cms:标记名称 属性="值"}自定义样式模板(InnerText){/dreamer-cms:标记名称}
|
||||
</p>
|
||||
|
||||
```html?linenums
|
||||
注:模板的标记,必须严格用{dreamer-cms:标记名称 属性="值"}{/dreamer-cms:标记名称} 这种格式,否则会报错。
|
||||
```
|
1262
backend/docs/chapter04/LabelCategory.html
Normal file
30
backend/docs/chapter04/LabelCategory.md
Normal file
@ -0,0 +1,30 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 标签分类
|
||||
<p>
|
||||
每个标签都会有他的作用域,我们已经了解系统文档页面可以分为:封面、列表、内容几个部分,每个页面的模板则会涉及到不同的标签,所以标签也有了他的作用域,我们在模板制作过程中主要根据模板的作用域来对模板进行如下划分:
|
||||
</p>
|
||||
|
||||
#### 全局标签
|
||||
<p>
|
||||
可以在前台文档任意页面使用的模板标记,例如:global、variable、type、template、list、channel、categoryartlist、include等。
|
||||
</p>
|
||||
|
||||
#### 分页标签
|
||||
<p>
|
||||
可以在除首页外的其它任意模板中使用的标签,例如:category、topcategory、location。
|
||||
</p>
|
||||
|
||||
#### 列表标签
|
||||
<p>
|
||||
仅在模板*_list.htm中可以使用的标签,例如:pagelist、pagination。
|
||||
</p>
|
||||
|
||||
#### 内容标签
|
||||
<p>
|
||||
仅在模板*_.article.html中可以使用的模板标记,例如:article。
|
||||
</p>
|
10
backend/docs/chapter04/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 模板引擎介绍
|
||||
<p>
|
||||
Dreamer CMS从2.0.0版本开始采用了解析式引擎与编译式引擎并存的模式,由于在生成HTML时,解析式引擎拥有巨大的优势,但对于动态浏览的互动性质的页面,编译式引擎更实用高效,Dreamer CMS采用双引擎并存的模式,在保持标签风格一致性的同时,也保证将来开发更多互动模块时有更好的性能。
|
||||
</p>
|
1248
backend/docs/chapter04/index.html
Normal file
1411
backend/docs/chapter05/ArticleLabel.html
Normal file
105
backend/docs/chapter05/ArticleLabel.md
Normal file
@ -0,0 +1,105 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Article文章页标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
文章页标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
该标签是用于在文章内容页显示当前文章信息
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:article field="title" /}
|
||||
或
|
||||
{dreamer-cms:article field="title" function="substring|format" /}
|
||||
```
|
||||
|
||||
#### 函数介绍
|
||||
```html?linenums
|
||||
1. function="substring(参数1,参数2,参数3)"
|
||||
函数说明:截取字段为指定长度,function="",必须为双引号包裹。
|
||||
参数1:开始截取的位置
|
||||
参数2:截取长度
|
||||
参数3:替换字符,如...。注:参数3需要用英文单引号包裹,例:'...'
|
||||
2. function="format(参数)"
|
||||
函数说明:格式化日期数据为指定格式
|
||||
参数:格式化字符串,参照SimpleDateFormat类,注:参数需要用英文单引号包裹,例:'yyyy-MM-dd'
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.ArticleTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
field|字段名
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
id|文章ID
|
||||
title|标题
|
||||
properties|文章属性(头条h加粗b幻灯f图片b)
|
||||
litpic|缩略图
|
||||
tag|文章标签
|
||||
remark|文章描述
|
||||
categoryid|栏目ID
|
||||
typenamecn|栏目中文名称
|
||||
typenameen|栏目英文名称
|
||||
comment|是否允许评论
|
||||
subscribe|是否允许订阅
|
||||
clicks|点击数
|
||||
weight|权重(可以利用该字段来排序)
|
||||
status|状态
|
||||
createby|发布人
|
||||
realname|发布人真实姓名
|
||||
username|发布人用户名
|
||||
createtime|发布时间
|
||||
updateby|更新人
|
||||
updatetime|更新时间
|
||||
arcurl|文章访问URL
|
||||
***|其它附加字段(需要配合自定义表单)
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-12 mx-auto">
|
||||
<div class="post post-card">
|
||||
<div class="single-post-header">
|
||||
<div class="post-tag">{dreamer-cms:article field="createtime" /}</div>
|
||||
<h1>{dreamer-cms:article field="title" /}</h1>
|
||||
<ul class="list-inline blog-item-links">
|
||||
<li class="list-inline-item">{dreamer-cms:article field="tag" /}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="templates-details">
|
||||
<a href="javascript:void(0)" class="post-image" ><img src="{dreamer-cms:article field='litpic' /}" alt="#" class="img-fluid featured-img"></a>
|
||||
{dreamer-cms:article field="body" /}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1344
backend/docs/chapter05/AttachmentLabel.html
Normal file
77
backend/docs/chapter05/AttachmentLabel.md
Normal file
@ -0,0 +1,77 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Attachment附件标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
附件标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于在页面中展示指定的附件,可用于下载功能。
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:attachment key="ez159g51"}
|
||||
<a href="[field:dlurl /]" target="_blank" class="btn btn-primary main-btn bg-main">一键运行版下载</a>
|
||||
{/dreamer-cms:attachment}
|
||||
```
|
||||
|
||||
#### 函数介绍
|
||||
```html?linenums
|
||||
使用示例:
|
||||
[field:filename function="substring(0,50,'...')" /]
|
||||
或
|
||||
[field:createtime function="format('yyyy-MM-dd')" /]
|
||||
|
||||
1. function="substring(参数1,参数2,参数3)"
|
||||
函数说明:截取字段为指定长度,function="",必须为双引号包裹。
|
||||
参数1:开始截取的位置
|
||||
参数2:截取长度
|
||||
参数3:替换字符,如...。注:参数3需要用英文单引号包裹,例:'...'
|
||||
2. function="format(参数)"
|
||||
函数说明:格式化日期数据为指定格式
|
||||
参数:格式化字符串,参照SimpleDateFormat类,注:参数需要用英文单引号包裹,例:'yyyy-MM-dd'
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.AttachmentTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
key|后台附件管理中的编码,通过唯一编码,获取指定附件
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
id|附件ID
|
||||
filename|附件名称
|
||||
filetype|附件类型(为MultipartFile类的ContentType)
|
||||
filesize|附件大小
|
||||
dlurl|下载连接
|
||||
createby|创建人
|
||||
createtime|创建时间
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:attachment key="ez159g51"}
|
||||
<a href="[field:dlurl /]" target="_blank" class="btn btn-primary main-btn bg-main">一键运行版下载</a>
|
||||
{/dreamer-cms:attachment}
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1322
backend/docs/chapter05/CategoryArtListLabel.html
Normal file
76
backend/docs/chapter05/CategoryArtListLabel.md
Normal file
@ -0,0 +1,76 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### CategoryArtListLabel栏目内容列表标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
栏目内容列表标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
该标签是系统中唯一的一个支持嵌套的标签,这个标签通常使用在首页(含封面首页),用于输出一组栏目内容列表,主要用于获取下级栏目的内容列表标签并适用于所有模版,通常用于网站内容列表等信息
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:categoryartlist length="1"}
|
||||
{dreamer-cms:if test="('true' eq [field:haschildren/])"}
|
||||
<li><a href="[field:typeurl/]">[field:typenamecn /]</a>
|
||||
<ul>
|
||||
{dreamer-cms:channel}
|
||||
<li><a href="[field:typeurl/]">[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:channel}
|
||||
</ul>
|
||||
</li>
|
||||
{/dreamer-cms:if}
|
||||
{/dreamer-cms:categoryartlist}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.ChannelArtListTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
typeid|后台栏目管理列表页面中的编码,通过唯一编码,获取指定栏目
|
||||
length|获取个数
|
||||
showall|是否获取全部栏目(包括隐藏栏目)showall="1"
|
||||
|
||||
#### 底层字段
|
||||
参照channel和list标签返回字段说明
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<ul class="nav navbar-nav mr-auto">
|
||||
<li class="nav-item active"><a class="nav-link scroll" href="/">首页</a></li>
|
||||
{dreamer-cms:categoryartlist length="1"}
|
||||
{dreamer-cms:if test="('true' eq [field:haschildren/])"}
|
||||
<li class="dropdown nav-item"><a href="[field:typeurl/]" class="nav-link dropdown-toggle" data-toggle="dropdown">[field:typenamecn /]</a>
|
||||
<ul class="dropdown-menu">
|
||||
{dreamer-cms:channel}
|
||||
<li><a class="dropdown-item" href="[field:typeurl/]"><i class="ion ion-chevron-right"></i>[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:channel}
|
||||
</ul>
|
||||
</li>
|
||||
{/dreamer-cms:if}
|
||||
{dreamer-cms:if test="('false' eq [field:haschildren/])"}
|
||||
<li class="nav-item"><a class="nav-link scroll" href="[field:typeurl /]" title="[field:typenamecn /]">[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:if}
|
||||
{/dreamer-cms:categoryartlist}
|
||||
</ul>
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1433
backend/docs/chapter05/CategoryLabel.html
Normal file
103
backend/docs/chapter05/CategoryLabel.md
Normal file
@ -0,0 +1,103 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Category分页栏目标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
分页栏目标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
该标签是用于在分页(封面页面和列表页面和文章页面)调用当前栏目信息
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:category field="typenamecn" /}
|
||||
```
|
||||
|
||||
#### 函数介绍
|
||||
```html?linenums
|
||||
使用示例:
|
||||
[field:typenamecn function="substring(0,50,'...')" /]
|
||||
或
|
||||
[field:createtime function="format('yyyy-MM-dd')" /]
|
||||
|
||||
1. function="substring(参数1,参数2,参数3)"
|
||||
函数说明:截取字段为指定长度,function="",必须为双引号包裹。
|
||||
参数1:开始截取的位置
|
||||
参数2:截取长度
|
||||
参数3:替换字符,如...。注:参数3需要用英文单引号包裹,例:'...'
|
||||
2. function="format(参数)"
|
||||
函数说明:格式化日期数据为指定格式
|
||||
参数:格式化字符串,参照SimpleDateFormat类,注:参数需要用英文单引号包裹,例:'yyyy-MM-dd'
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.CategoryTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
field|字段名
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
typeid|栏目ID
|
||||
typenamecn|栏目中文名称
|
||||
typenameen|栏目英文名称
|
||||
typecode|栏目编码(8位唯一)
|
||||
typeseq|栏目的层级
|
||||
typeimg|栏目图片
|
||||
description|栏目描述
|
||||
linktarget|链接目标
|
||||
pagesize|分页大小(该属性控制列表页面默认的分页大小)
|
||||
visiturl|访问URL(浏览器地址栏中将以该url显示,如果为空,则为栏目中文名称的拼音)
|
||||
linkurl|链接URL
|
||||
editor|编辑器(md或ue)
|
||||
mdcontent|markdown内容
|
||||
htmlcontent|生成的html内容
|
||||
parentid|上级栏目ID
|
||||
parentname|上级栏目名称
|
||||
isshow|是否显示
|
||||
level|栏目层级
|
||||
sort|排序(默认为50)
|
||||
createby|创建人
|
||||
createtime|创建时间
|
||||
updateby|更新人
|
||||
updatetime|更新时间
|
||||
typeurl|栏目URL
|
||||
ext01|扩展字段1
|
||||
ext02|扩展字段2
|
||||
ext03|扩展字段3
|
||||
ext04|扩展字段4
|
||||
ext05|扩展字段5
|
||||
haschildren|是否有下级栏目(该属性在dreamer-cms:type标签下不可用)
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<section class="page-header d-flex align-items-center">
|
||||
<div class="container-fluid">
|
||||
<div class="page-header-content text-center">
|
||||
<div class="page-header-tag">{dreamer-cms:global name="title" /}</div>
|
||||
<div class="page-header-title">{dreamer-cms:category field="typenamecn" /}</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1464
backend/docs/chapter05/ChannelLabel.html
Normal file
119
backend/docs/chapter05/ChannelLabel.md
Normal file
@ -0,0 +1,119 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Channel频道列表标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
栏目标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
常用标记,通常用于网站顶部以获取站点栏目信息
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:channel typeid="TNLESKZ4" showall="true" type="son"}
|
||||
<li><a href="[field:typeurl/]">[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:channel}
|
||||
```
|
||||
|
||||
#### 函数介绍
|
||||
```html?linenums
|
||||
使用示例:
|
||||
[field:typenamecn function="substring(0,50,'...')" /]
|
||||
或
|
||||
[field:createtime function="format('yyyy-MM-dd')" /]
|
||||
或
|
||||
[field:autoindex function="steps(5,1)" /]
|
||||
|
||||
1. function="substring(参数1,参数2,参数3)"
|
||||
函数说明:截取字段为指定长度,function="",必须为双引号包裹。
|
||||
参数1:开始截取的位置
|
||||
参数2:截取长度
|
||||
参数3:替换字符,如...。注:参数3需要用英文单引号包裹,例:'...'
|
||||
2. function="format(参数)"
|
||||
函数说明:格式化日期数据为指定格式
|
||||
参数:格式化字符串,参照SimpleDateFormat类,注:参数需要用英文单引号包裹,例:'yyyy-MM-dd'
|
||||
3. function="steps(参数1, 参数2)"
|
||||
函数说明:指定autoindex的起始序号以及步长
|
||||
参数1:起始序号
|
||||
参数2:步长
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.ChannelTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
typeid|后台栏目管理列表页面中的编码,通过唯一编码,获取指定栏目
|
||||
start|从第几个开始获取
|
||||
length|获取个数
|
||||
type|显示类型(top为顶级栏目,son在设置typeid时起作用,获取指定栏目的下级栏目)
|
||||
showall|是否显示隐藏栏目(true或false)
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
typeid|栏目ID
|
||||
typenamecn|栏目中文名称
|
||||
typenameen|栏目英文名称
|
||||
typecode|栏目编码(8位唯一)
|
||||
typeseq|栏目的层级
|
||||
typeimg|栏目图片
|
||||
description|栏目描述
|
||||
linktarget|链接目标
|
||||
pagesize|分页大小(该属性控制列表页面默认的分页大小)
|
||||
visiturl|访问URL(浏览器地址栏中将以该url显示,如果为空,则为栏目中文名称的拼音)
|
||||
linkurl|链接URL
|
||||
editor|编辑器(md或ue)
|
||||
mdcontent|markdown内容
|
||||
htmlcontent|生成的html内容
|
||||
parentname|上级栏目名称
|
||||
isshow|是否显示
|
||||
level|栏目层级
|
||||
sort|排序(默认为50)
|
||||
createby|创建人
|
||||
createtime|创建时间
|
||||
updateby|更新人
|
||||
updatetime|更新时间
|
||||
typeurl|栏目URL
|
||||
ext01|扩展字段1
|
||||
ext02|扩展字段2
|
||||
ext03|扩展字段3
|
||||
ext04|扩展字段4
|
||||
ext05|扩展字段5
|
||||
haschildren|是否有下级栏目(该属性在dreamer-cms:type标签下不可用)
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<div class="popup" id="popup">
|
||||
<div class="popup-content"><div class="left-slide-sidebar ">
|
||||
<div class="canvas-title">DreamerCMS MENUS</div>
|
||||
<ul class="list-unstyled slide-sidebar">
|
||||
<li><a href="#">首页</a></li>
|
||||
{dreamer-cms:channel type='top' currentstyle=""}
|
||||
<li><a href="[field:typeurl /]" title="[field:typenamecn /]">[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:channel}
|
||||
</ul>
|
||||
</div>
|
||||
<a href="#close" class="popup-close">×</a>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1350
backend/docs/chapter05/GlobalLabel.html
Normal file
81
backend/docs/chapter05/GlobalLabel.md
Normal file
@ -0,0 +1,81 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Global全局配置标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
全局配置标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于获取系统后台系统设置中的配置信息
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:global name="title" /}
|
||||
或
|
||||
{dreamer-cms:global name="title"}{/dreamer-cms:global}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.GlobalTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
name|系统设置中的配置信息的Key
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
website|网站地址
|
||||
title|网站标题
|
||||
keywords|网站关键字
|
||||
describe|网站描述
|
||||
icp|网站备案号
|
||||
copyright|网站版权
|
||||
uploaddir|网站上传目录
|
||||
appid|暂无作用
|
||||
appkey|暂无作用
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<footer class="footer">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-5 col-md-6 col-sm-5 align-self-center">
|
||||
<div>
|
||||
<p>
|
||||
{dreamer-cms:global name="copyright" /}
|
||||
备案号:{dreamer-cms:global name="icp" /}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-lg-7 col-md-6 col-sm-7 align-self-center">
|
||||
<ul class="list-inline footer-menu">
|
||||
{dreamer-cms:channel type='top' currentstyle=""}
|
||||
<li class="list-inline-item"><a href="[field:typeurl /]" title="[field:typenamecn /]">[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:channel}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1298
backend/docs/chapter05/IfLabel.html
Normal file
64
backend/docs/chapter05/IfLabel.md
Normal file
@ -0,0 +1,64 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### If判断标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
判断标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于在页面中作简单的判断,目前只支持eq和neq,且只用于在categoryartlist标签内使用。
|
||||
</p>
|
||||
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:if test="('false' eq [field:haschildren/])"}
|
||||
<li><a ref="[field:typeurl /]" title="[field:typenamecn /]">[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:if}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.IfTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
test|表达式(注:一定要用小括号包裹,目前只支持eq和neq。)
|
||||
|
||||
#### 底层字段
|
||||
无
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:categoryartlist length="1"}
|
||||
{dreamer-cms:if test="('true' eq [field:haschildren/])"}
|
||||
<li class="dropdown nav-item"><a href="[field:typeurl/]" class="nav-link dropdown-toggle" data-toggle="dropdown">[field:typenamecn /]</a>
|
||||
<ul class="dropdown-menu">
|
||||
{dreamer-cms:channel}
|
||||
<li><a class="dropdown-item" href="[field:typeurl/]"><i class="ion ion-chevron-right"></i>[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:channel}
|
||||
</ul>
|
||||
</li>
|
||||
{/dreamer-cms:if}
|
||||
{dreamer-cms:if test="('false' eq [field:haschildren/])"}
|
||||
<li class="nav-item"><a class="nav-link scroll" href="[field:typeurl /]" title="[field:typenamecn /]">[field:typenamecn /]</a></li>
|
||||
{/dreamer-cms:if}
|
||||
{/dreamer-cms:categoryartlist}
|
||||
```
|
||||
|
||||
#### 效果
|
||||
无
|
1290
backend/docs/chapter05/IncludeLabel.html
Normal file
50
backend/docs/chapter05/IncludeLabel.md
Normal file
@ -0,0 +1,50 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Include引入文件标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
引入文件标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于引入其它模板的内容,以方便拆分头部、尾部等公共部分
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:include file='header.html'/}
|
||||
或
|
||||
{dreamer-cms:include file="header.html"}{/dreamer-cms:include}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.IncludeTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
file|要引入的模版文件名称
|
||||
|
||||
#### 底层字段
|
||||
无
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:include file='header.html'/}
|
||||
```
|
||||
|
||||
#### 效果
|
||||
无
|
1444
backend/docs/chapter05/ListLabel.html
Normal file
112
backend/docs/chapter05/ListLabel.md
Normal file
@ -0,0 +1,112 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### List文章列表标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
文章列表标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于获取栏目下的文章
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:list typeid="A54547W2" pagenum="0" pagesize="8" flag="p"}
|
||||
<a href="[field:arcurl/]">[field:title /]</a>
|
||||
{/dreamer-cms:list}
|
||||
```
|
||||
|
||||
#### 函数介绍
|
||||
```html?linenums
|
||||
使用示例:
|
||||
[field:title function="substring(0,50,'...')" /]
|
||||
或
|
||||
[field:createtime function="format('yyyy-MM-dd')" /]
|
||||
或
|
||||
[field:autoindex function="steps(5,1)" /]
|
||||
|
||||
1. function="substring(参数1,参数2,参数3)"
|
||||
函数说明:截取字段为指定长度,function="",必须为双引号包裹。
|
||||
参数1:开始截取的位置
|
||||
参数2:截取长度
|
||||
参数3:替换字符,如...。注:参数3需要用英文单引号包裹,例:'...'
|
||||
2. function="format(参数)"
|
||||
函数说明:格式化日期数据为指定格式
|
||||
参数:格式化字符串,参照SimpleDateFormat类,注:参数需要用英文单引号包裹,例:'yyyy-MM-dd'
|
||||
3. function="steps(参数1, 参数2)"
|
||||
函数说明:指定autoindex的起始序号以及步长
|
||||
参数1:起始序号
|
||||
参数2:步长
|
||||
```
|
||||
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.ListTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
typeid|后台栏目管理列表页面中的编码,通过唯一编码,获取指定栏目
|
||||
pagenum|页数
|
||||
pagesize|获取数量
|
||||
flag|文章属性(p图片)
|
||||
cascade|是否显示该栏目的下级栏目的文章
|
||||
addfields|附加字段,多个字段间用英文逗号分隔
|
||||
formkey|表单模型的编码(可以在后台表单管理列表中获取)
|
||||
sortWay|排序方式(asc或desc)
|
||||
sortBy|排序字段(数据库中字段名)
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
autoindex|序号(从1开始)
|
||||
id|文章ID
|
||||
title|标题
|
||||
properties|文章属性(头条h加粗b幻灯f图片b)
|
||||
litpic|缩略图
|
||||
hasthumbnail|是否有缩略图(有输出yes-thumbnail;无输出no-thumbnail)<br />可用于Css的class名,从而实现动态的输出列表样式
|
||||
tag|文章标签
|
||||
remark|文章描述
|
||||
categoryid|栏目ID
|
||||
typenamecn|栏目中文名称
|
||||
typenameen|栏目英文名称
|
||||
comment|是否允许评论
|
||||
subscribe|是否允许订阅
|
||||
clicks|点击数
|
||||
weight|权重(可以利用该字段来排序)
|
||||
status|状态
|
||||
createby|发布人
|
||||
createtime|发布时间
|
||||
updateby|更新人
|
||||
updatetime|更新时间
|
||||
arcurl|文章访问URL
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:list typeid="A54547W2" pagenum="1" pagesize="4" flag="p"}
|
||||
<div class="col-lg-3 col-md-4 col-sm-6">
|
||||
<div class="feature-wrap">
|
||||
<div class="feature-image"><img src="[field:litpic /]" class="ion ion-ios-cloud-outline"></i></div>
|
||||
<a href="[field:arcurl/]">[field:title function="substring(0,100,'...')" /]</a>
|
||||
<p></p>
|
||||
</div>
|
||||
</div>
|
||||
{/dreamer-cms:list}
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1291
backend/docs/chapter05/LocationLabel.html
Normal file
58
backend/docs/chapter05/LocationLabel.md
Normal file
@ -0,0 +1,58 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### If判断标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_4.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
当前位置标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
该标签用于在分页(封面页面和列表页面和文章页面)页面中展示当前位置
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:location lang="cn" /}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.LocationTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
lang|语言(cn或en)用于展示中文名称或英文名称
|
||||
|
||||
#### 底层字段
|
||||
无
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:location lang="cn" /}
|
||||
```
|
||||
|
||||
#### 效果
|
||||
会返回当前位置html片段,样式可自行控制,如
|
||||
```html?linenums
|
||||
<ul class="dreamer-location">
|
||||
<li>
|
||||
<a href="/" title="首页">首页</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/" title="更新记录">更新记录</a>
|
||||
</li>
|
||||
</ul>
|
||||
```
|
1432
backend/docs/chapter05/PageListLabel.html
Normal file
120
backend/docs/chapter05/PageListLabel.md
Normal file
@ -0,0 +1,120 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### PageList文章分页标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
文章分页标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
该标签是用于在列表页面调用文章列表并显示分页信息。一般该标签配合{dreamer-cms:pagination /}共同使用
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:pagelist}
|
||||
<li><a href="#"><i class="ion ion-calendar"></i>[field:createtime/]</a></li>
|
||||
{/dreamer-cms:pagelist}
|
||||
```
|
||||
|
||||
#### 函数介绍
|
||||
```html?linenums
|
||||
使用示例:
|
||||
[field:title function="substring(0,50,'...')" /]
|
||||
或
|
||||
[field:createtime function="format('yyyy-MM-dd')" /]
|
||||
或
|
||||
[field:autoindex function="steps(5,1)" /]
|
||||
|
||||
1. function="substring(参数1,参数2,参数3)"
|
||||
函数说明:截取字段为指定长度,function="",必须为双引号包裹。
|
||||
参数1:开始截取的位置
|
||||
参数2:截取长度
|
||||
参数3:替换字符,如...。注:参数3需要用英文单引号包裹,例:'...'
|
||||
2. function="format(参数)"
|
||||
函数说明:格式化日期数据为指定格式
|
||||
参数:格式化字符串,参照SimpleDateFormat类,注:参数需要用英文单引号包裹,例:'yyyy-MM-dd'
|
||||
3. function="steps(参数1, 参数2)"
|
||||
函数说明:指定autoindex的起始序号以及步长
|
||||
参数1:起始序号
|
||||
参数2:步长
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.PageListTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
formkey|表单模型的编码
|
||||
addfields|附加字段(该字段须设置了formkey后生效)
|
||||
cascade|是否显示该栏目的下级栏目的文章
|
||||
sortWay|排序方式(asc或desc)
|
||||
sortBy|排序字段(数据库中字段名)
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
autoindex|序号(从1开始)
|
||||
id|文章ID
|
||||
title|标题
|
||||
properties|文章属性(头条h加粗b幻灯f图片b)
|
||||
litpic|缩略图
|
||||
tag|文章标签
|
||||
remark|文章描述
|
||||
categoryid|栏目ID
|
||||
typenamecn|栏目中文名称
|
||||
typenameen|栏目英文名称
|
||||
comment|是否允许评论
|
||||
subscribe|是否允许订阅
|
||||
clicks|点击数
|
||||
weight|权重(可以利用该字段来排序)
|
||||
status|状态
|
||||
createby|发布人
|
||||
createtime|发布时间
|
||||
updateby|更新人
|
||||
updatetime|更新时间
|
||||
arcurl|文章访问URL
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<div class="row">
|
||||
{dreamer-cms:pagelist formkey="LUVC0AW2" addfields="versionnum,notes"}
|
||||
<div class="col-lg-4 col-md-6 col-sm-6">
|
||||
<div class="blog-post">
|
||||
<div class="blog-details">
|
||||
<ul class="list-inline blog-item-links">
|
||||
<li class="list-inline-item"><a href="#"><i class="ion ion-calendar"></i>版本号:[field:versionnum/]</a></li>
|
||||
<li class="list-inline-item"><a href="#"><i class="ion ion-chatbubbles"></i>点击:[field:clicks/]</a></li>
|
||||
</ul>
|
||||
<a href="[field:arcurl/]"><h4 class="media-heading">[field:title/]</h4></a>
|
||||
<p class="product-para">版本号:[field:versionnum/]</p>
|
||||
<p class="product-para">发布日期:[field:createtime/]</p>
|
||||
<a href="[field:arcurl/]" class="blog-post-link">查看详情 <i class="fa fa-angle-double-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/dreamer-cms:pagelist}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
{dreamer-cms:pagination /}
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1268
backend/docs/chapter05/PaginationLabel.html
Normal file
44
backend/docs/chapter05/PaginationLabel.md
Normal file
@ -0,0 +1,44 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Pagination显示分页标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
显示分页标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
该标签是用于在列表页面显示分页信息。一般该标签配合{dreamer-cms:pagelist}共同使用
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:pagination /}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.PaginationTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
无
|
||||
|
||||
#### 底层字段
|
||||
无
|
||||
|
||||
#### 范例
|
||||
参照 [PageList文章分页标签](/chapter05/PageListLabel.md)
|
||||
|
||||
#### 效果
|
||||
无
|
1300
backend/docs/chapter05/PrevNextLabel.html
Normal file
61
backend/docs/chapter05/PrevNextLabel.md
Normal file
@ -0,0 +1,61 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### PrevNext上一篇、下一篇标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
上一篇、下一篇标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于在文章详情页面展示上一篇、下一篇
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:prevnext layout="prev,next" /}
|
||||
或
|
||||
{dreamer-cms:prevnext layout="prev,next"}{/dreamer-cms:prevnext}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.PrevNextTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
layout|要展示上一篇、下一篇的布局,可选项[prev/next/prev,next]
|
||||
|
||||
#### 底层字段
|
||||
无
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:prevnext layout="prev,next" /}
|
||||
```
|
||||
|
||||
#### 效果
|
||||
会返回上一篇、下一篇html片段,样式可自行控制,如
|
||||
```html?linenums
|
||||
<ul class='dreamer-prevnext'>
|
||||
<li class='dreamer-prev'>
|
||||
<span class='dreamer-prevnext-label'>上一篇:</span>
|
||||
<a href='/article/7a4bc5cade9845bbb2528783d995ce20' title='智慧校园管理系统平台组成内容有哪些'>智慧校园管理系统平台组成内容有哪些</a>
|
||||
</li>
|
||||
<li class='dreamer-next'>
|
||||
<span class='dreamer-prevnext-label'>下一篇:没有了</span>
|
||||
</li>
|
||||
</ul>
|
||||
```
|
1296
backend/docs/chapter05/SqlLabel.html
Normal file
56
backend/docs/chapter05/SqlLabel.md
Normal file
@ -0,0 +1,56 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Sql标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_3.5.1 +
|
||||
</p>
|
||||
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
自定义Sql标签
|
||||
</p>
|
||||
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于在页面中作简单的查询,例如获取某栏目下的单个文章,可以在后台文章列表页面,复制文章ID,写在Sql中。注:Sql中的单引号须转义成[]来实现。
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:sql sql="select username as username,sex from system_user where id = [1]"}
|
||||
<div>[field:username /]</div>
|
||||
{/dreamer-cms:sql}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.SqlTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
sql|sql语句,注:Sql中的单引号须转义成[]来实现。
|
||||
|
||||
#### 底层字段
|
||||
底层字段取决于查询的字段,查询语句中如有用到as别名,则使用[field:别名 /]来获取;如没用到别名,则使用真实字段名[field:真实字段名 /]来获取。
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:sql sql="select username as username,sex from system_user where id = [1]"}
|
||||
<div>[field:username /]</div>
|
||||
{/dreamer-cms:sql}
|
||||
```
|
||||
|
||||
#### 效果
|
||||
无
|
1329
backend/docs/chapter05/TagLabel.html
Normal file
63
backend/docs/chapter05/TagLabel.md
Normal file
@ -0,0 +1,63 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### If判断标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
标签列表标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于在页面中展示文章标签列表
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:label start="0" length="8"}
|
||||
<a href="#">
|
||||
[field:tagname /]
|
||||
</a>
|
||||
{/dreamer-cms:label}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.LabelTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
start|从第几个开始获取
|
||||
length|获取个数
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
autoindex|序号
|
||||
id|标签ID
|
||||
tagname|标签名称
|
||||
tagfirstchar|标签首字母
|
||||
tagpinyin|标签拼音
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:label start="0" length="8"}
|
||||
<a href="#">
|
||||
[field:tagname /]
|
||||
</a>
|
||||
{/dreamer-cms:label}
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1285
backend/docs/chapter05/TemplateLabel.html
Normal file
56
backend/docs/chapter05/TemplateLabel.md
Normal file
@ -0,0 +1,56 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Template全局变量标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
模版路径标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于获取系统模版所在的根目录
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:template /}bootstrap/css/bootstrap.min.css
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.TemplateTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
无
|
||||
|
||||
#### 底层字段
|
||||
无
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<link rel="stylesheet" href="{dreamer-cms:template /}bootstrap/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="{dreamer-cms:template /}css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="{dreamer-cms:template /}plugins/slick/slick.css">
|
||||
<link rel="stylesheet" href="{dreamer-cms:template /}plugins/slick/slick-theme.css">
|
||||
<link rel="stylesheet" href="{dreamer-cms:template /}css/app.css">
|
||||
<link rel="stylesheet" href="{dreamer-cms:template /}css/responsive.css">
|
||||
<script src="{dreamer-cms:template /}js/jquery-3.2.1.slim.min.js"></script>
|
||||
<script src="{dreamer-cms:template /}bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="{dreamer-cms:template /}js/popper.min.js"></script>
|
||||
<script src="{dreamer-cms:template /}plugins/slick/slick.min.js"></script>
|
||||
<script src="{dreamer-cms:template /}js/app.js"></script>
|
||||
```
|
||||
|
||||
#### 效果
|
||||
无
|
1431
backend/docs/chapter05/TopCategoryLabel.html
Normal file
94
backend/docs/chapter05/TopCategoryLabel.md
Normal file
@ -0,0 +1,94 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### TopCategory分页顶级栏目标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_4.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
分页顶级栏目标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
该标签是用于在分页(封面页面和列表页面和文章页面)调用当前栏目所属顶级栏目信息
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:topcategory field="typenamecn" /}
|
||||
```
|
||||
|
||||
#### 函数介绍
|
||||
```html?linenums
|
||||
使用示例:
|
||||
[field:typenamecn function="substring(0,50,'...')" /]
|
||||
或
|
||||
[field:createtime function="format('yyyy-MM-dd')" /]
|
||||
|
||||
function="substring(参数1,参数2,参数3)"
|
||||
函数说明:截取字段为指定长度,function="",必须为双引号包裹。
|
||||
参数1:开始截取的位置
|
||||
参数2:截取长度
|
||||
参数3:替换字符,如...。注:参数3需要用英文单引号包裹,例:'...'
|
||||
function="format(参数)"
|
||||
函数说明:格式化日期数据为指定格式
|
||||
参数:格式化字符串,参照SimpleDateFormat类,注:参数需要用英文单引号包裹,例:'yyyy-MM-dd'
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.TopCategoryTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
field|字段名
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
typeid|栏目ID
|
||||
typenamecn|栏目中文名称
|
||||
typenameen|栏目英文名称
|
||||
typecode|栏目编码(8位唯一)
|
||||
typeseq|栏目的层级
|
||||
typeimg|栏目图片
|
||||
description|栏目描述
|
||||
linktarget|链接目标
|
||||
pagesize|分页大小(该属性控制列表页面默认的分页大小)
|
||||
visiturl|访问URL(浏览器地址栏中将以该url显示,如果为空,则为栏目中文名称的拼音)
|
||||
linkurl|链接URL
|
||||
editor|编辑器(md或ue)
|
||||
mdcontent|markdown内容
|
||||
htmlcontent|生成的html内容
|
||||
parentid|上级栏目ID
|
||||
parentname|上级栏目名称
|
||||
isshow|是否显示
|
||||
level|栏目层级
|
||||
sort|排序(默认为50)
|
||||
createby|创建人
|
||||
createtime|创建时间
|
||||
updateby|更新人
|
||||
updatetime|更新时间
|
||||
typeurl|栏目URL
|
||||
ext01|扩展字段1
|
||||
ext02|扩展字段2
|
||||
ext03|扩展字段3
|
||||
ext04|扩展字段4
|
||||
ext05|扩展字段5
|
||||
haschildren|是否有下级栏目(该属性在dreamer-cms:type标签下不可用)
|
||||
|
||||
#### 范例
|
||||
使用方法参照CategoryLabel
|
||||
|
||||
#### 效果
|
||||
无
|
1344
backend/docs/chapter05/TreeLabel.html
Normal file
105
backend/docs/chapter05/TreeLabel.md
Normal file
@ -0,0 +1,105 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Tree栏目树标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_4.1.3 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
栏目树标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
该标签用于在页面中展示栏目树标签
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:tree root="A54547W2"}{/dreamer-cms:tree}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.TreeTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
root|根节点栏目的编码(-1为顶级栏目)
|
||||
|
||||
#### 底层字段
|
||||
无
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
{dreamer-cms:tree root="A54547W2" /}
|
||||
```
|
||||
|
||||
#### 效果
|
||||
会返回栏目树html片段,样式可自行控制,如
|
||||
```html?linenums
|
||||
<ul class='dreamer-tree'>
|
||||
<li class='dreamer-tree-root'>
|
||||
<div class='dreamer-tree-root-div'>
|
||||
<a href='/list-1hq8501w/jiejuefangan/1/20' title='解决方案'>解决方案</a>
|
||||
<ul class='dreamer-tree-children'>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'>
|
||||
<a href='/cover-ghx3glm1/zhengfu' title='政府'>政府</a>
|
||||
<ul class='dreamer-tree-children'>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-053xm0pt/tuidongjingjizengzhanghefazhan' title='推动经济增长和发展'>推动经济增长和发展</a></div>
|
||||
</li>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-6jxfu5dd/jianshekechixufazhanweilai' title='建设可持续发展未来'>建设可持续发展未来</a></div>
|
||||
</li>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-tj129c0d/tigonganquankekaodefuwu' title='提供安全可靠的服务'>提供安全可靠的服务</a></div>
|
||||
</li>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-f53449nw/shixiangexinghuashuzitiyan' title='实现个性化数字体验'>实现个性化数字体验</a></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-051fu5ij/xiehui' title='协会'>协会</a>
|
||||
<ul class='dreamer-tree-children'>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-t6vvi4a9/liuchengfansuofuza' title='流程繁琐复杂'>流程繁琐复杂</a></div>
|
||||
</li>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-65gl4ltz/hudongchangjingdanyi' title='互动场景单一'>互动场景单一</a></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-0n629d19/qiye' title='企业'>企业</a>
|
||||
<ul class='dreamer-tree-children'>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-rx9e963g/jiakuaininchenggongbufa' title='加快您成功步伐'>加快您成功步伐</a></div>
|
||||
</li>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-14a3rjst/jianhuaanquanbaohu' title='简化安全保护'>简化安全保护</a></div>
|
||||
</li>
|
||||
<li class='dreamer-tree-node'>
|
||||
<div class='dreamer-tree-node-div'><a href='/cover-nky008yg/baohunindeweilai' title='保护您的未来'>保护您的未来</a></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
```
|
1436
backend/docs/chapter05/TypeLabel.html
Normal file
103
backend/docs/chapter05/TypeLabel.md
Normal file
@ -0,0 +1,103 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Type栏目调用标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
栏目调用标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于获取指定栏目的内容
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:type typeid="A54547W2"}
|
||||
<div class="text-center"><a href="[field:typeurl/]">查看更多</a></div>
|
||||
{/dreamer-cms:type}
|
||||
```
|
||||
|
||||
#### 函数介绍
|
||||
```html?linenums
|
||||
使用示例:
|
||||
[field:typenamecn function="substring(0,50,'...')" /]
|
||||
或
|
||||
[field:createtime function="format('yyyy-MM-dd')" /]
|
||||
|
||||
1. function="substring(参数1,参数2,参数3)"
|
||||
函数说明:截取字段为指定长度,function="",必须为双引号包裹。
|
||||
参数1:开始截取的位置
|
||||
参数2:截取长度
|
||||
参数3:替换字符,如...。注:参数3需要用英文单引号包裹,例:'...'
|
||||
2. function="format(参数)"
|
||||
函数说明:格式化日期数据为指定格式
|
||||
参数:格式化字符串,参照SimpleDateFormat类,注:参数需要用英文单引号包裹,例:'yyyy-MM-dd'
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.TypeTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
typeid|后台栏目管理列表页面中的编码,通过唯一编码,获取指定栏目
|
||||
|
||||
#### 底层字段
|
||||
字段名|描述
|
||||
:--:|:--
|
||||
typeid|栏目ID
|
||||
typenamecn|栏目中文名称
|
||||
typenameen|栏目英文名称
|
||||
typecode|栏目编码(8位唯一)
|
||||
typeseq|栏目的层级
|
||||
typeimg|栏目图片
|
||||
description|栏目描述
|
||||
linktarget|链接目标
|
||||
pagesize|分页大小(该属性控制列表页面默认的分页大小)
|
||||
visiturl|访问URL(浏览器地址栏中将以该url显示,如果为空,则为栏目中文名称的拼音)
|
||||
linkurl|链接URL
|
||||
editor|编辑器(md或ue)
|
||||
mdcontent|markdown内容
|
||||
htmlcontent|生成的html内容
|
||||
parentname|上级栏目名称
|
||||
isshow|是否显示
|
||||
level|栏目层级
|
||||
sort|排序(默认为50)
|
||||
createby|创建人
|
||||
createtime|创建时间
|
||||
updateby|更新人
|
||||
updatetime|更新时间
|
||||
typeurl|栏目URL
|
||||
ext01|扩展字段1
|
||||
ext02|扩展字段2
|
||||
ext03|扩展字段3
|
||||
ext04|扩展字段4
|
||||
ext05|扩展字段5
|
||||
haschildren|是否有下级栏目(该属性在dreamer-cms:type标签下不可用)
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<div class="row">
|
||||
<div class="col-12 mt-5">
|
||||
{dreamer-cms:type typeid="A54547W2"}
|
||||
<div class="text-center"><a href="[field:typeurl/]" class="btn btn-primary main-btn btn-reload"><i class="fa fa-spinner fa-spin"></i> 查看更多</a></div>
|
||||
{/dreamer-cms:type}
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
1309
backend/docs/chapter05/VariableLabel.html
Normal file
69
backend/docs/chapter05/VariableLabel.md
Normal file
@ -0,0 +1,69 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### Variable全局变量标签
|
||||
|
||||
#### 适用版本
|
||||
<p>
|
||||
Previous_Releases_2.0.0 +
|
||||
</p>
|
||||
|
||||
#### 名称
|
||||
<p>
|
||||
全局变量标签
|
||||
</p>
|
||||
|
||||
#### 功能
|
||||
<p>
|
||||
用于获取系统后台变量管理中的配置信息
|
||||
</p>
|
||||
|
||||
#### 语法
|
||||
```html?linenums
|
||||
{dreamer-cms:variable name='cfg_gitee_addr'/}
|
||||
或
|
||||
{dreamer-cms:variable name='cfg_gitee_addr'}{/dreamer-cms:variable}
|
||||
```
|
||||
|
||||
#### 文件
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.tags.VariableTag
|
||||
```
|
||||
|
||||
#### 参数
|
||||
参数名|描述
|
||||
:--:|:--
|
||||
name|变量管理中的变量名
|
||||
|
||||
#### 底层字段
|
||||
无
|
||||
|
||||
#### 范例
|
||||
```html?linenums
|
||||
<section id="action" class="call-to-action-2">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="call-to-action-wrap">
|
||||
<div class="call-to-action-title">
|
||||
<div class="text-center"><a href="{dreamer-cms:variable name='cfg_gitee_addr'/}" class="btn btn-primary main-btn">源码下载</a></div>
|
||||
<h3>梦想家CMS内容管理系统支持码云、Github等多种渠道下载。</h3>
|
||||
</div>
|
||||
<div class="list-wrap">
|
||||
<ul class="list-inline applications">
|
||||
<li class="list-inline-item"><a href="{dreamer-cms:variable name='cfg_gitee_addr'/}"><img src="{dreamer-cms:template /}images/app1.png" alt="Application"></a></li>
|
||||
<li class="list-inline-item"><a href="{dreamer-cms:variable name='cfg_github_addr'/}"><img src="{dreamer-cms:template /}images/app2.png" alt="Application"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
```
|
||||
|
||||
#### 效果
|
||||

|
2978
backend/docs/chapter06/DataBase.html
Normal file
312
backend/docs/chapter06/DataBase.md
Normal file
@ -0,0 +1,312 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
|
||||
### 1. system_setting(网站配置表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|--------------|----|----------|----------------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| website | varchar(128) | | | 网址 |
|
||||
| title | varchar(64) | | | 网站标题 |
|
||||
| keywords | varchar(128) | | | 网站关键字 |
|
||||
| describe | varchar(256) | | | 网站描述 |
|
||||
| icp | varchar(32) | | | ICP备案号 |
|
||||
| copyright | varchar(128) | | | 版权 |
|
||||
| uploaddir | varchar(32) | | uploads/ | 上传目录 |
|
||||
| staticdir | varchar(32) | | htmls | 静态化目录 |
|
||||
| browse_type | int(11) | | 1 | 浏览方式(1:动态2:静态) |
|
||||
| appid | varchar(128) | | | 畅言appid(已废弃) |
|
||||
| appkey | varchar(128) | | | 畅言appkey(已废弃) |
|
||||
|
||||
### 2. system_user(用户表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-----------------|-------------|----|---------------------|--------------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| username | varchar(32) | | | 用户名 |
|
||||
| password | varchar(32) | | | 密码 |
|
||||
| mobile | varchar(32) | | | 手机 |
|
||||
| realname | varchar(32) | | | 真实姓名 |
|
||||
| status | int(11) | | | 状态(1:启用0:禁用) |
|
||||
| page_style | varchar(32) | | | 页面风格(已废弃) |
|
||||
| salt | varchar(64) | | uploads/ | 密码盐 |
|
||||
| last_login_ip | varchar(32) | | htmls | 上次登录IP |
|
||||
| last_login_time | varchar(32) | | 1 | 上次登录时间 |
|
||||
| portrait | varchar(32) | | | 头像 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 3. system_role(角色表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|-------------|----|---------------------|------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| role_name | varchar(64) | | | 角色名称 |
|
||||
| role_code | varchar(8) | | | 角色编码 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 4. system_user_role(用户角色关联表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|---------|-------------|----|-----|------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| user_id | varchar(32) | | | 用户ID |
|
||||
| role_id | varchar(32) | | | 角色ID |
|
||||
|
||||
### 5. system_menu(菜单表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|--------------|----|---------------------|------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| menu_name | varchar(64) | | | 菜单名称 |
|
||||
| menu_code | varchar(32) | | | 菜单编码 |
|
||||
| menu_url | varchar(512) | | | 菜单路径 |
|
||||
| parent_id | varchar(32) | | | 上级菜单 |
|
||||
| menu_icon | varchar(64) | | | 菜单图标 |
|
||||
| sort | int(11) | | | 排序 |
|
||||
| remark | text | | | 备注 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 6. system_permission(权限表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-----------------|--------------|----|---------------------|------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| permission_name | varchar(128) | | | 权限名称 |
|
||||
| permission_code | varchar(32) | | | 权限编码 |
|
||||
| menu_id | varchar(32) | | | 所属菜单 |
|
||||
| permission_url | varchar(512) | | | 权限路径 |
|
||||
| remark | text | | | 备注 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 7. system_role_permission(角色权限关联表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|---------------|-------------|----|-----|---------------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| role_id | varchar(32) | | | 角色ID |
|
||||
| permission_id | varchar(32) | | | 权限ID |
|
||||
| type | int(11) | | | 类型(1:菜单;2:权限) |
|
||||
|
||||
### 8. system_scheduled(定时任务表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-----------------|--------------|----|---------------------|----------------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| task_name | varchar(128) | | | 任务名称 |
|
||||
| clazz_name | varchar(512) | | | 完整类路径 |
|
||||
| cron_expression | varchar(128) | | | cron表达式 |
|
||||
| remark | text | | | 备注 |
|
||||
| status | varchar(32) | | | 状态(1:启用;0:禁用;) |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 9. system_category(栏目分类表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|----------------|--------------|----|---------------------|-------------------------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| cnname | varchar(128) | | | 栏目中文名称 |
|
||||
| enname | varchar(64) | | | 栏目英文名称 |
|
||||
| code | varchar(32) | | | 编码 |
|
||||
| cat_seq | varchar(128) | | | 层级关系 |
|
||||
| form_id | varchar(32) | | | 表单ID |
|
||||
| image_path | varchar(128) | | | 栏目图片 |
|
||||
| description | varchar(128) | | | 栏目描述 |
|
||||
| link_target | varchar(8) | | | 链接目标 |
|
||||
| page_size | int(11) | | 20 | 分页数量 |
|
||||
| cat_model | int(11) | | 1 | 栏目模型(1:封面;2:列表;3:外部链接;) |
|
||||
| visit_url | varchar(128) | | | 访问路径 |
|
||||
| cover_temp | varchar(128) | | | 封面模版 |
|
||||
| list_temp | varchar(128) | | | 列表模版 |
|
||||
| article_temp | varchar(32) | | | 内容页模版 |
|
||||
| link_url | varchar(128) | | | 链接路径 |
|
||||
| default_editor | varchar(10) | | | 默认编辑器 |
|
||||
| md_content | text | | | md内容 |
|
||||
| html_content | text | | | html内容 |
|
||||
| parent_id | varchar(128) | | | 上级栏目 |
|
||||
| is_show | int(11) | | 1 | 公开选项(1:显示;0:隐藏;) |
|
||||
| level | varchar(10) | | | 栏目级别 |
|
||||
| sort | int(11) | | 50 | 排序 |
|
||||
| is_input | int(11) | | 0 | 是否允许投稿 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
| ext01 | varchar(32) | | | 扩展字段1 |
|
||||
| ext02 | varchar(32) | | | 扩展字段2 |
|
||||
| ext03 | varchar(32) | | | 扩展字段3 |
|
||||
| ext04 | varchar(32) | | | 扩展字段4 |
|
||||
| ext05 | varchar(32) | | | 扩展字段5 |
|
||||
|
||||
### 10. system_archives(栏目文章表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|--------------|---------------|----|---------------------|------------------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| title | varchar(128) | | | 文章标题 |
|
||||
| properties | varchar(32) | | n | 自定义属性 |
|
||||
| image_path | varchar(128) | | | 缩略图 |
|
||||
| tag | varchar(128) | | | 标签 |
|
||||
| description | varchar(256) | | | 内容摘要 |
|
||||
| category_id | varchar(32) | | | 上级栏目 |
|
||||
| comment | int(11) | | 1 | 允许评论 |
|
||||
| subscribe | int(11) | | 1 | 允许订阅 |
|
||||
| clicks | int(11) | | 0 | 浏览量 |
|
||||
| weight | int(11) | | 0 | 权重 |
|
||||
| status | int(11) | | 1 | 状态(1:已发布;0:未发布;) |
|
||||
| category_ids | varchar(1024) | | | 栏目层级 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 11. system_labels(文章标签表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|--------------|----|---------------------|--------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| tag_name | varchar(128) | | | 标签名称 |
|
||||
| pinyin | varchar(256) | | | 拼音 |
|
||||
| first_char | varchar(2) | | | 首字母 |
|
||||
| tag_count | varchar(64) | | | 标签使用次数 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 12. system_attachment(附件表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|--------------|----|---------------------|------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| code | varchar(32) | | | 标识码 |
|
||||
| filename | varchar(64) | | | 文件名 |
|
||||
| filesize | int(11) | | | 文件大小 |
|
||||
| filetype | varchar(128) | | | 文件类型 |
|
||||
| filepath | varchar(256) | | | 文件路径 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 13. system_forms(表单模型表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|--------------|----|---------------------|---------------------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| form_name | varchar(32) | | | 表单名 |
|
||||
| table_name | varchar(128) | | | 表名 |
|
||||
| code | varchar(32) | | | 编码系统自动生成 |
|
||||
| type | int(11) | | 1 | 类型(0:系统模型;1:自定义模型;) |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
| ext01 | varchar(32) | | | 扩展字段1 |
|
||||
| ext02 | varchar(32) | | | 扩展字段2 |
|
||||
| ext03 | varchar(32) | | | 扩展字段3 |
|
||||
| ext04 | varchar(32) | | | 扩展字段4 |
|
||||
| ext05 | varchar(32) | | | 扩展字段5 |
|
||||
|
||||
### 14. system_fields(表单字段表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|---------------|--------------|----|---------------------|----------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| form_id | varchar(32) | | | |
|
||||
| field_text | varchar(32) | | | 字段提示名 |
|
||||
| field_name | varchar(128) | | | 字段名 |
|
||||
| type | int(11) | | 1 | 类型(暂无使用) |
|
||||
| data_type | varchar(32) | | | 数据类型 |
|
||||
| default_value | varchar(128) | | | 默认值 |
|
||||
| max_length | int(11) | | | 最大长度 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
| ext01 | varchar(32) | | | 扩展字段1 |
|
||||
| ext02 | varchar(32) | | | 扩展字段2 |
|
||||
| ext03 | varchar(32) | | | 扩展字段3 |
|
||||
| ext04 | varchar(32) | | | 扩展字段4 |
|
||||
| ext05 | varchar(32) | | | 扩展字段5 |
|
||||
|
||||
### 15. system_theme(网站主题表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|--------------|--------------|----|---------------------|---------------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| theme_name | varchar(128) | | | 风格名称 |
|
||||
| theme_author | varchar(32) | | | 作者 |
|
||||
| theme_img | varchar(128) | | | 缩略图 |
|
||||
| theme_path | varchar(128) | | | 目录名 |
|
||||
| status | int(11) | | 0 | 状态(1:启用;0:禁用) |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 16. system_theme(网站主题表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|---------------|----|---------------------|------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| item_name | varchar(255)} | | | 变量名称 |
|
||||
| info | varchar(255)} | | | 描述 |
|
||||
| type | varchar(255)} | | | 字段类型 |
|
||||
| value | varchar(255)} | | | 变量值 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
|
||||
### 17. system_logger(系统日志表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|--------------|----|---------------------|-------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| level | varchar(32) | | | 级别 |
|
||||
| oper_user | varchar(64) | | | 操作用户 |
|
||||
| oper_type | varchar(32) | | | 操作类型 |
|
||||
| oper_source | varchar(128) | | | 操作源 |
|
||||
| ip | varchar(64) | | | IP |
|
||||
| module | varchar(64) | | | 模块 |
|
||||
| browser | varchar(128) | | | 浏览器 |
|
||||
| platform | varchar(128) | | | 平台 |
|
||||
| content | text | | | 内容 |
|
||||
| create_by | varchar(32) | | | 创建人 |
|
||||
| create_time | timestamp | | 2018-01-01 00:00:00 | 创建时间 |
|
||||
| update_by | varchar(32) | | | 修改人 |
|
||||
| update_time | timestamp | | CURRENT_TIMESTAMP | 修改时间 |
|
||||
| extend1 | varchar(256) | | | 扩展字段1 |
|
||||
| extend2 | varchar(256) | | | 扩展字段2 |
|
||||
| extend3 | varchar(256) | | | 扩展字段3 |
|
||||
|
||||
### 18. system_search(搜索记录表)
|
||||
|
||||
| 字段名 | 类型 | 键 | 默认值 | 字段说明 |
|
||||
|-------------|---------------|----|-------------------|------|
|
||||
| id | varchar(32) | 主键 | | 主键 |
|
||||
| keywords | varchar(128) | | | 关键字 |
|
||||
| create_time | timestamp | | CURRENT_TIMESTAMP | 创建时间 |
|
||||
|
||||
### 19. 其它表
|
||||
|
||||
> 剩余其它表,均为表单模型创建生成,可以后台表单模型模块中进行查看。
|
1273
backend/docs/chapter07/DefineLabel.html
Normal file
39
backend/docs/chapter07/DefineLabel.md
Normal file
@ -0,0 +1,39 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 定义标签
|
||||
在实际开发中,可能系统自带的标签满足不了复杂需求,这时需要用户来自定义标签,前面的介绍,我们已经知道标签有统一的接口,就是:
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.IParse
|
||||
```
|
||||
我们只需要实现该接口,重写两个parse方法即可,然后在统一入口中来调用就可以了。
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.ParseEngine
|
||||
```
|
||||
并且自定义标签类,还需要添加@Tag注解,如有属性还需要添加@Attribute注解,最后需要将该类纳入Spring管理,添加@Component注解
|
||||
|
||||
#### 范例
|
||||
```java?linenums
|
||||
@Component
|
||||
@Tag(beginTag="{dreamer-cms:custom}",endTag="{/dreamer-cms:custom}",regexp="\\{dreamer-cms:custom[ \\t]*.*\\}([\\s\\S]+?)\\{/dreamer-cms:custom\\}", attributes={
|
||||
@Attribute(name = "attr1",regex = "[ \t]+attr1=\".*?\""),
|
||||
})
|
||||
public class CustomTag implements IParse {
|
||||
|
||||
@Override
|
||||
public String parse(String html) {
|
||||
// 解析代码
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String parse(String html, String params) {
|
||||
// 解析代码
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
```
|
1303
backend/docs/chapter07/Message.html
Normal file
78
backend/docs/chapter07/Message.md
Normal file
@ -0,0 +1,78 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 留言投稿
|
||||
在网站开发时,难免会有留言投稿的需求,Dreamer CMS考虑到这点,为大家提供了留言投稿的功能。以下内容详细介绍在自定义模板中,如何使用留言投稿的功能。
|
||||
|
||||
模板文件:
|
||||
```
|
||||
新版:default_v2/list_case.html
|
||||
旧版:default/list_message.html
|
||||
```
|
||||
|
||||
#### 前端表单
|
||||
在使用留言投稿功能时,为了防止恶意留言,我们必须要使用图形验证码功能进行校验。
|
||||
1. 网站后台
|
||||
```javascript?linenums
|
||||
在网站后台栏目管理中,要针对留言的栏目,必须要开启允许投稿。
|
||||
```
|
||||

|
||||
|
||||
2. 验证码地址
|
||||
```javascript?linenums
|
||||
var captchaURL = "/getKaptcha?t=" + new Date().getTime();
|
||||
// 建议每次切换都加上时间戳作为参数,避免缓存
|
||||
```
|
||||
3. 表单定义
|
||||
```html?linenums
|
||||
<form action="/input" method="post">
|
||||
<input type="hidden" name="typeid" value="wqz18j7q" />
|
||||
<input type="hidden" name="formkey" value="8t2lkr8d" />
|
||||
<div class="item">
|
||||
<input type="text" id="title" placeholder="填写您的姓名" name="title">
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" id="telephone" placeholder="填写您的联系电话" name="telephone">
|
||||
</div>
|
||||
<div class="item">
|
||||
<textarea id="content" name="content" class="form-control" placeholder="填写您的需求"></textarea>
|
||||
</div>
|
||||
<div class="captcha">
|
||||
<div class="login-form-vcode"><img alt="图片验证码" width="120" height="46" src="" id="vcode"></div>
|
||||
<div class="login-form-vcode-input"><input type="text" name="captcha" placeholder="验证码" required="required" class="form-control" /></div>
|
||||
<div class="clearFix"></div>
|
||||
</div>
|
||||
<div class="form-btn-group-left">
|
||||
<div class="submission set_5_button" id="essentialInformation">提交</div>
|
||||
</div>
|
||||
</form>
|
||||
```
|
||||
|
||||
注意:
|
||||
1. 提交地址必须为/input,方式必须为POST。
|
||||
2. captcha: 验证码字段名,不可改变。
|
||||
3. typeid:使用隐藏域来定义该留言提交后,要提交到后台的哪一个栏目中,不可改变。
|
||||
4. formkey:该栏目所使用的表单模型,指定后可使用表单模型中定义的字段名,不可改变。
|
||||
5. title:公共字段,文章标题,不可改变。
|
||||
6. telephone|content:表单模型中定义的字段。
|
||||
|
||||
#### 后端接收
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.controller.FrontController
|
||||
```
|
||||
在该类中的input方法,为后端接收前台留言的控制器。返回JSON数据,格式如下:
|
||||
```javascript?linenums
|
||||
{
|
||||
"success": true,
|
||||
"state": "200",
|
||||
"data": null,
|
||||
"info": "操作成功"
|
||||
}
|
||||
// 前台只需要判断response.state === "200"即可,其它结果均为失败。
|
||||
```
|
||||
|
||||
#### 范例
|
||||

|
1249
backend/docs/chapter07/Regexp.html
Normal file
20
backend/docs/chapter07/Regexp.md
Normal file
@ -0,0 +1,20 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 正则工具类
|
||||
在扩展标签时,需要对html模版进行正则解析,具体可使用系统中的正则工具类
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.taglib.utils.RegexUtil
|
||||
```
|
||||
该类提供了正则匹配相关的一系列静态方法。
|
||||
|
||||
#### 范例
|
||||
```java?linenums
|
||||
//获取html中的标签
|
||||
List<String> tags = RegexUtil.parseAll(html, channelAnnotation.regexp(), 0);
|
||||
//获取html中的标签中的内容
|
||||
List<String> contents = RegexUtil.parseAll(html, channelAnnotation.regexp(), 1);
|
||||
```
|
1267
backend/docs/chapter07/Search.html
Normal file
34
backend/docs/chapter07/Search.md
Normal file
@ -0,0 +1,34 @@
|
||||
<div style="display: flex;">
|
||||
<img src="https://oss.iteachyou.cc/logo.png" height="30" />
|
||||
<div style="margin-left: 5px; font-size: 30px; line-height: 30px; font-weight: bold;">梦想家内容管理系统</div>
|
||||
</div>
|
||||
|
||||
----------
|
||||
### 网站搜索
|
||||
在本小节,将带领大家一起学习网站中搜索功能的实现。
|
||||
|
||||
模板文件必须为search.html,在模板文件中,可以使用pagelist标签展示数据和pagination标签来进行分页。
|
||||
|
||||
#### 前端表单
|
||||
```html?linenums
|
||||
<form class="navbar-left nav-search" role="search" action="/search" method="post">
|
||||
<input class="form-control" placeholder="输入关键字进行搜索..." type="text" name="entity['keywords']">
|
||||
<input type="submit" value="搜索" />
|
||||
</form>
|
||||
```
|
||||
注意:
|
||||
1. 提交地址必须为/search,方式必须为POST。
|
||||
2. keywords: 搜索关键词,不可改变。
|
||||
3. typeid:栏目编码,可以多个,多个使用英文逗号分隔(搜索范围:该字段可有可无,无默认为全站搜索)。
|
||||
4. 字段都要包在entity对象中,如entity['typeid']
|
||||
|
||||
#### 后端接收
|
||||
```java?linenums
|
||||
cc.iteachyou.cms.controller.FrontController
|
||||
```
|
||||
在该类中的search方法,为后端接收前台留言的控制器。返回HTML模板。
|
||||
|
||||
#### 范例
|
||||
```java?linenums
|
||||
无
|
||||
```
|