开源 免费 java CMS - FreeCMS2.1 菜单管理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

项目地址:http://www.freeteam.cn/

菜单管理

FreeCMS在设计时定位于面向二次开发友好,所以FreeCMS提供了菜单管理功能,二次开发人员可以自由增加新的功能菜单到FreeCMS

为了让后台管理功能更规范,FreeTeam建议您把新增加的功能放在admin目录下,系统也对admin目录下所有资源进行了登录验证,保证资源的访问安全。

从FreeCMS 1.7开始支持

菜单增加图标属性。


1. 添加一级菜单

从左侧管理菜单点击菜单管理进入。

点击“添加根菜单”

选择图标

 


输入相关属性点击“确定”即可。

注意

1.菜单地址是以/admin/为默认前缀的,如图所示:菜单地址为test.do,那么此功能的地址为/admin/test.do;如果需要指向非admin目录的地址,只需要填写完整地址,如/test.do或http://localhost/test.do

2.菜单代码是在写程序时用的,用于权限控制,推荐设置为唯一的代码。

点击“保存”后会提示操作结果

当提示添加菜单 XXX 成功时表明此菜单已添加。刷新页面后可以看到。

2. 修改菜单

选择需要修改的菜单,如“根菜单”

点击“编辑”

输入相关属性点击“确定”即可。

点击“保存”后会提示操作结果

当提示修改菜单 XXX 成功时表明此菜单已修改。刷新页面后可以看到。

3. 添加下级菜单

选择需要添加下级菜单的菜单,如“根菜单”

点击“添加下级”

填写相关属性后点击“保存”即可。

点击“保存”后下方会提示操作结果

当提示添加菜单 XXX 成功时表明此菜单已添加。刷新页面后可以看到。

4. 转移菜单

为了方便用户使用,FreeCMS提供了改变菜单结构的简便方法,使您在想对菜单结构作出调整时不需要删除重建菜单。

选择需要改变所属菜单的菜单,如“根菜单”

点击“转移”

选择需要调整的位置,如“站点”,直接点击即可。

注意

1) 如果选择“设置为根菜单”,则此菜单会变为根菜单。

2) 在改变所属菜单时,此菜单的子菜单会随着此菜单转移。

5. 管理操作按钮

管理页面一般都会有操作按钮,FreeCMS为菜单提供了操作按钮的管理功能。

选择需要管理操作按钮的菜单,如“根菜单”

点击“操作按钮”找开管理页面

输入相关属性点击添加即可。

注意:执行代码为点击此按钮时所触发的js代码。

如需修改或删除直接点击后面的修改或删除按钮即可。

提示:在管理页面中,可以使用以下两种方法进行调用,但首先您需要添加

<%@taglib prefix="fs" uri="/fs-tags" %>启用fs标签库(freecms标签库)。

1) <fs:operButtons />:自动按顺序提取显示有效按钮。

2) <fs:operButton buttonName="添加" />:提取显示指定名字的操作按钮。

6. 菜单排序

除了通过手工填写菜单排序实现排序外,您还可以直接在菜单列表上通过点击“上升”、“下降”两个按钮实现排序。

7. 删除菜单

删除菜单功能将删除指定菜单及子菜单,此操作不可恢复,请慎重操作。

选择需要删除的菜单,如“根菜单”

点击“删除”按钮

为防止用户误操作,系统会提示用户确认,点击“确定”按钮

点击“确定”后下方会显示操作结果

当提示操作成功时表明此菜单已删除。刷新页面后可以看到。

转载于:https://my.oschina.net/u/916014/blog/311873

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本来想用“{{”秀一波,结果却导致了内存溢出!

这是我的第 200 期分享作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;生活中的尴尬无处不在&#xff0c;有时候你只是想简单的装一把&#xff0c;但某些“老同志”总是在不…

在Ruby中使用&运算符(new_array- arr&old_Array)创建数组实例

In the last articles, we have gone through many methods through which we can create Array Instances but you all must know that those all were Public class methods and now in the upcoming articles, we will be learning about Public instance methods. 在上一篇…

Run Length Encoding

游程编码 (Run Length Encoding ) 是一种简单的编码方法&#xff0c;通常用于控制论中对二值图像编码。ACM有一道题目就是关于该编码。见tzu 1149 或poj 1782 。虽然是简单题&#xff0c;我却花了好大功夫才搞定&#xff0c;功力还是不足阿。 程序代码如下&#xff1a; #incl…

局部变量竟然比全局变量快 5 倍?

这是我的第 201 期分享作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;喽&#xff0c;大家好&#xff0c;磊哥的性能优化篇又来了&#xff01;其实写这个性能优化类的文章初…

FreeMarker笔记 前言第1章 入门

简介 简介 FreeMarker是一款模板引擎&#xff1a;一种基于模板的、用来生成输出文本&#xff08;任何来自于HTML格式的文本用来自动生成源代码&#xff09;的通用工具。它是为Java程序员提供的一个开发包或者说是类库。它不是面向最终用户&#xff0c;而是为程序员提供的可以嵌…

优先级调度算法动态优先级_与优先级调度有关的问题及其解决方案

优先级调度算法动态优先级We are already familiar with what Priority Scheduling is. It is one of the most used process scheduling algorithm used in operating systems, in which every process is assigned with a priority. According to this algorithm, the proces…

hdoj 1013 Digital Roots

链接&#xff1a;zoj 1115 或 hdoj 1013 或poj 1519 虽说是水题&#xff0c;却几经波折才搞定。该题目中的数字可能非常大&#xff0c;所以不能使用整型数&#xff0c;只能采用字符变量 代码如下&#xff1a; #include <stdio.h>int digitalRoot(int n); int digitS…

厉害了,3万字的MySQL精华总结 + 面试100问!

这是我的第 202 期分享作者 | 派大新来源 | JavaKeeper&#xff08;ID&#xff1a;JavaKeeper&#xff09;分享 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;❝写在之前&#xff1a;不建议那种上来就是各种面试题罗列&#xff0c;然后背书式的去记忆&#x…

网页视频播放器代码大全 + 21个为您的站点和博客提供的免费视频播放器

推荐 使用 极酷 Web在线播放器。网页中嵌入视频代码综合全然版 1.avi格式 代码片断例如以下&#xff1a;  程序代码 <objectid"video"width"400"height"200"border"0"classid"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA&q…

codejam题目_嵌套深度-Google CodeJam 2020资格回合问题解决方案

codejam题目Problem statement: 问题陈述&#xff1a; Given a string of digits S, insert a minimum number of opening and closing parentheses into it such that the resulting string is balanced and each digit d is inside exactly d pairs of matching parentheses…

hdoj 1015 Safecracker

见hdoj 1015 或 zoj 1403 或tzu 1308 我使用了枚举法&#xff0c;代码写的很罗嗦&#xff0c;可能还是深度优先搜索写起来更清晰。 /* hdoj 1015 */ #include <stdio.h> #include <string.h>#define MAX (125) #define RESLEN 5 int bubSort(int a[], int n); in…

漫话:为什么计算机起始时间是1970年1月1日?

这是我的第 203 期分享作者 | 漫画编程来源 | 漫画编程&#xff08;ID&#xff1a;mhcoding&#xff09;分享 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;问题复现1970-01-01对于开发者来说都是不陌生的&#xff0c;有些系统对于时间的处理如果不够好的话&…

puppeteer执行js_使用Node.js和Puppeteer与表单和网页进行交互– 1

puppeteer执行jsHi guys! Today lets look at another powerful function of the puppeteer API using Node.js. 嗨&#xff0c;大家好&#xff01; 今天&#xff0c;让我们看看使用Node.js的puppeteer API的另一个强大功能。 In the first part of this section, lets look a…

zoj 1154 Niven numbers

见zoj 1154 还是需要将输入数据当作字符串来处理&#xff0c;不能直接使用整型。 /* zoj 1154 Niven numbers */#include <stdio.h> #define MAX 100 int isNivenNum(int base, char str[]);int main(void) {int totalBlocks;int base;int first 1;char str[MAX];scanf…

面试官:不会看SQL执行计划,简历也敢写精通SQL优化?

这是我的第 204 期分享作者 | 程序员内点事来源 | 程序员内点事&#xff08;ID&#xff1a;chengxy-nds&#xff09;分享 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;昨天中午在食堂&#xff0c;和部门的技术大牛们坐在一桌吃饭&#xff0c;作为一个卑微技…

scrollTop的兼容性小结

2019独角兽企业重金招聘Python工程师标准>>> 在页面上加上了 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 之后&#xff0c;document.body.scrollTop的值…

stl标准模板库_C ++标准模板库(STL)中的数组及其常用功能

stl标准模板库"array" is a container in C STL, which has fixed size, which is defined in "array" header. “ array”是C STL中的一个容器&#xff0c;具有固定大小&#xff0c;在“ array”标头中定义。 Declaration: 宣言&#xff1a; array <…

zoj 1074 To the MAX

见zoj 1074 参考了别人的思路才搞定。见http://blog.csdn.net/acm_davidcn/article/details/5834454 使用了最大连续子序列和的算法&#xff0c;虽然自己也知道这个算法&#xff0c;但是却没办法做到活学活用。 /* zoj 1074 To the Max */ #include <stdio.h> #inc…

阿里巴巴为什么让初始化集合时必须指定大小?

这是我的第 205 期分享作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;哈喽&#xff0c;亲爱的小伙伴们&#xff0c;技术学磊哥&#xff0c;进步没得说&#xff01;欢迎来到…

ios页面间跳转方式总结

转自&#xff1a;http://www.cnblogs.com/anywherego/p/3542202.html 下面以OldViewController(oldC)的按钮btn点击后跳转到NewViewController(newC)为例说明: 1.Storyboard的segues方式 鼠标点击按钮btn然后按住control键拖拽到newC页面&#xff0c;在弹出的segue页面中选择跳…