php168主页、专题页模板制作工具

javaVMEditor功能

在以php168模板模型的系统上制作专题、主页模板时可以快速切割页面代码,并生成相应文件入库。一旦自动入库的数据和要制作的页面的模板对应好,就可在cms上主页、专题管理中不用录入任何数据就可以预览到页面的全貌。

javaVMEditor使用方法

 1 添加要制作的页面 ,记住ID
 2 把要制作的页面的代码贴入javaVMEditor
 3 在编辑工具中删除不需要的头尾代码
 4 区分并选中要制成块的代码段,点工具的红、绿、蓝块中的一个
 5 当把所有要制作的块选择制作完成后,点设置中的数据库设置,录入好数据库信息和页面ID
 6 点文件保存
 7 把生成好的文件打开,查看代码,把代码内容作为模板内容填写到模板管理系统中
 8 设置要制作页面的模板为刚刚制作的模板
 9. 预览页面完成制作
 

工具下载

java 写道
/*******************************************************************************
* Copyright (c) 2000, 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package com.jh.app.texteditor;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.FontDialog;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;

/**
*/
public class JavaVMEditor {
private Image createStockImage(Display display, String path) {
InputStream stream = JavaVMEditor.class.getResourceAsStream(path);
ImageData imageData = new ImageData(stream);
ImageData mask = imageData.getTransparencyMask();
Image result = new Image(display, imageData, mask);
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}

public static void main(String[] args) {
Display display = new Display();
JavaVMEditor example = new JavaVMEditor();
Shell shell = example.open(display);

while (!shell.isDisposed())
if (!display.readAndDispatch())
display.sleep();
display.dispose();
}

private Color BLUE = null;

private FileDialog fileDialog;
private Font font = null;
private Color GREEN = null;

private Images images = new Images();
private JavaLineStyler lineStyler = new JavaLineStyler();

private Color RED = null;
private Shell shell;
private StyledText text;
private ToolBar toolBar;
private SaveAction action = null;
static private void setActionMethod(final Object obj, Menu menu,
String actionName, final String mname ){
setActionMethod(obj, menu, actionName, mname,new Object[] {});
}

static private void setActionMethod(final Object obj, Menu menu,
String actionName, final String mname,final Object[] args) {
try {
MenuItem item = new MenuItem(menu, SWT.PUSH);
item.setText(actionName);
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {

try {
Util.privateMethodRun(obj.getClass(), mname, obj, args);
} catch (Exception e1) {
e1.printStackTrace();
}
}
});

} catch (Exception e) {

e.printStackTrace();
}
}

private Menu createSetMenu() {
Menu bar = shell.getMenuBar();
Menu menu = new Menu(bar);
setActionMethod(action, menu, "数据库设置", "initSet");
setActionMethod(this, menu, "设置字体", "setFont");

return menu;
}

private Menu createFileMenu() {
Menu bar = shell.getMenuBar();
Menu menu = new Menu(bar);
setActionMethod(this, menu, "打开文件", "openFile");

setActionMethod(this, menu, "退出", "menuFileExit");
return menu;
}

private void createMenuBar() {
Menu bar = new Menu(shell, SWT.BAR);
shell.setMenuBar(bar);
MenuItem fileItem2 = new MenuItem(bar, SWT.CASCADE);
fileItem2.setText("文件");
fileItem2.setMenu(createFileMenu());
MenuItem editItem2 = new MenuItem(bar, SWT.CASCADE);
editItem2.setText("设置");
editItem2.setMenu(createSetMenu());
createHelpMenu(bar);
}

private void createHelpMenu(Menu parent) {
Menu menu = new Menu(parent);
MenuItem header = new MenuItem(parent, SWT.CASCADE);
header.setText("帮助");
header.setMenu(menu);

MenuItem item = new MenuItem(menu, SWT.PUSH);
item.setText("关于");
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION
| SWT.OK);
box.setText("模板代码生成器");
box.setMessage("欢迎使用代码生成器V0.5");
box.open();
}
});
}

private void createShell(Display display) {
shell = new Shell(display);
shell.setText("Cms v9 模板制作工具 V0.5");
images.loadAll(display);

shell.setImage(createStockImage(display, "generic_example.gif"));
GridLayout layout = new GridLayout();
layout.numColumns = 1;
shell.setLayout(layout);
shell.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
if (font != null)
font.dispose();
images.freeAll();
RED.dispose();
GREEN.dispose();
BLUE.dispose();
}
});
}

void createToolBar() {
toolBar = new ToolBar(shell, SWT.NONE);
new ToolItem(toolBar, SWT.SEPARATOR);

String menu[] = {
"切块",
"标题",
"作者",
"责编",
"时间",
"来源",
"URL",
"栏目",
"内容",
"分页",
"上一篇",
"下一篇"
};
String menuAction[] = {
null,
"$rsdb[title]",
"$rsdb[author]",
"$rsdb[username]",
"$rsdb[posttime]",
"$rsdb[copyfrom]",
"$rsdb[copyfromurl]",
"<a href='list.php?fid={$rsdb[fid]}'>{$rsdb[fname]}</a>",
"$rsdb[content]",
"$showpage",
"[<a href=\"bencandy.php?fid=$backdb[fid]&id=$backdb[aid]\" οnclick=\"$backdb[click]\">上一篇</a>]\n<a href=\"bencandy.php?fid=$backdb[fid]&id=$backdb[aid]\" οnclick=\"$backdb[click]\" title=\"$backdb[title]\">$backdb[subject]</a>\n",
"[<a href=\"bencandy.php?fid=$nextdb[fid]&id=$nextdb[aid]\" οnclick=\"$nextdb[click]\">下一篇</a>]\n<a href=\"bencandy.php?fid=$nextdb[fid]&id=$nextdb[aid]\" οnclick=\"$nextdb[click]\" title=\"$nextdb[title]\">$nextdb[subject]</a>\n" };
for (int i = 0; i < menu.length; i++) {
cutBlockButton(toolBar, menu[i], menuAction[i]);
}
setActionMethod(action, toolBar, "生成专题页模板", "save");
setActionMethod(action, toolBar, "生成最终页模板", "savelastpage");

}

private void setActionMethod(final Object obj, ToolBar toolBar,
String actionName, final String mname) {
try {
ToolItem item = new ToolItem(toolBar, SWT.SEPARATOR);
item = new ToolItem(toolBar, SWT.PUSH);
item.setText(actionName);
item.setToolTipText(actionName);
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {

try {
Util.privateMethodRun(obj.getClass(), mname, obj,
new Object[] {});
} catch (Exception e1) {
e1.printStackTrace();
}
}
});

} catch (Exception e) {

e.printStackTrace();
}

}

void cutBlockButton(ToolBar toolBar, String btName) {
cutBlockButton(toolBar, btName, null);
}

void cutBlockButton(ToolBar toolBar, String btName, final String txt) {
ToolItem item = new ToolItem(toolBar, SWT.SEPARATOR);
item = new ToolItem(toolBar, SWT.PUSH);
item.setText(btName);
item.setToolTipText(btName);
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
if (txt == null) {
cutblock(RED, null);
} else {
cutblock(BLUE, txt);
}
}
});
}

boolean flag = false;

private void cutblock(Color fg, String info) {
text.removeLineStyleListener(lineStyler);

try {
Point sel = text.getSelectionRange();
String txt = text.getSelectionText();
if (txt == null || txt.indexOf("#@start") > -1
|| txt.indexOf("#@end") > -1) {
msgbox("此处代码不适合切块!");
return;
}
Event eventz = new Event();
Point selection = text.getSelection();
eventz.start = selection.x;
eventz.end = selection.y;
if (info == null) {
eventz.text = "#@start@#" + txt + "#@end@#";
} else {
eventz.text = "#@start@#" + txt + "@var@" + info + "#@end@#";
}
try {
Util.privateMethodRun(StyledText.class, "sendKeyEvent", text,
new Object[] { eventz });
} catch (Exception e) {
e.printStackTrace();
}

if ((sel == null) || (sel.y == 0))
return;
text.setStyleRange(new StyleRange(sel.x, eventz.text.length(), fg,
null, SWT.NORMAL));
} catch (Exception e) {
}

}

private void initializeColors() {
Display display = Display.getDefault();
RED = new Color(display, new RGB(255, 0, 0));
BLUE = new Color(display, new RGB(0, 0, 255));
GREEN = new Color(display, new RGB(0, 128, 0));
}

void menuFileExit() {
shell.close();
}

private void msgbox(String msg) {
MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
box.setMessage(msg);
box.open();
}

private void createStyledText() {
initializeColors();
text = new StyledText(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL
| SWT.H_SCROLL);

GridData spec = new GridData();
spec.horizontalAlignment = GridData.FILL;
spec.grabExcessHorizontalSpace = true;
spec.verticalAlignment = GridData.FILL;
spec.grabExcessVerticalSpace = true;
text.setLayoutData(spec);
text.addLineStyleListener(lineStyler);

}

private Shell open(Display display) {
createShell(display);
action = new SaveAction(shell);
createMenuBar();
createToolBar();
createStyledText();
action.setText(text);
shell.setSize(850, 650);
shell.open();
return shell;
}

private void openFile(final StyledText text, String name) {
final String textString;
if ((name == null) || (name.length() == 0))
return;
File file = new File(name);

try {

textString = Util.readFile(file);
} catch (IOException e) {
String message = "文件" + file.getName() + "读写错误";
msgbox(message);
return;

} catch (Exception e) {
String message = "文件" + file.getName() + "不存在";
msgbox(message);
return;
}
// Guard against superfluous mouse move events -- defer action until
// later
Display display = text.getDisplay();
display.asyncExec(new Runnable() {
public void run() {
text.setText(textString);
}
});

}

void openFile() {
if (fileDialog == null) {
fileDialog = new FileDialog(shell, SWT.OPEN);
}
fileDialog.setFilterExtensions(new String[] { "*.vm", "*.htm",
"*.html", "*.*" });
String name = fileDialog.open();
openFile(text, name);
}

void setFont() {
FontDialog fontDialog = new FontDialog(shell);
fontDialog.setFontList((text.getFont()).getFontData());
FontData fontData = fontDialog.open();
if (fontData != null) {
Font newFont = new Font(shell.getDisplay(), fontData);
text.setFont(newFont);
if (font != null)
font.dispose();
font = newFont;
}
}

}
全部代码见附件

 

国微CMS学校网站系统是一个以php MySQL进行开发的学校网站系统。国微学校方案重点为大学、中学、技校提供高性能解决方案,可快速将学校信息化迈入实用高效的水平。功能包括:精品课程系统、录取查询系统、学籍查询系统、教 师名录查询系统、招生系统、文章模块、视频模块、图片模块、下载模块、问答系统、表单系统、在线办事系统、广告模块、服务反馈体系、手机群发平台、邮件群 发平台、用户体系、在线招聘平台、留言本等模块。 国微CMS学校网站系统(PHP168 S系列) v20180925 更新日志 1、新增可以自由开启内网和外网访问。 2、新增了每个栏目IP访问、内容IP访问控制。 3、搜索集约化处理;更加方便方向代理。 4、cook进行了加密。 5、其余10余项项目此安全优化。 国微CMS学校网站系统注意事项 1、后台超管添加附件类型得到控制,只允许 rar zip png jpg gif swf pdf doc docx xls xlsx mp4 flv CSV常规附件类型 2、后台编辑模板方面,如果网站完成,我们通过上传一个配置文件,就关闭掉后台编辑模板功能。如果要开启,需要进入服务器,开启才行。类似强制登陆那种模式。 3、后台登陆可以开启不断变化的验证码(安全码也保留)。 4、后台密码必须要8位(不影响现在的密码体系前提下,因为很多超管密码给分站管理员后,都改为简单容易记住的) 国微CMS学校网站系统功能 系统体系化 模块化体系:所有功能均已系统化、模块化、插件化,如CMS、问答、广告、标签 用户体系: 不仅区分企业、个人,并可自由添加角色组与角色,使其用户体系与实体一致。 权限体系: 所有功能模块封装并与权限匹配,可以细化至栏目对接角色管理权限。 标签体系: 常规标签、变量标签、标签后缀、标签缓存体系等已全面实施。 模板体系: 从方案模板、会员中心、系统模块模板、栏目、列表面、内容完全可独立选择。 积分体系: 积分兑换、积分消费、积分规则等已经开始在系统内实施。 菜单体系: 后台菜单、前台菜单、会员中心菜单均可自由添加和控制。 安全体系: 支持IP黑名单、白名单、支持防CC攻击、支持批量过滤敏感词汇。 通讯体系: 手机模块、邮件模块、短消息模块均已做成接口模式,任意功能均可方便调用。 程序整合体系:将支持PHPwind、UC、PHP168自身等系统整合,同时互动百科也将整合。   易用性: A、全部前台可视化操作,可视即可操作。 B、一键化应用:如一键安装、一键缓存、一键静态、一键更换模板。 C、标签样式不断增加,只需用鼠标选择想用的样式即可。 D、自由组装和拆卸模块与插件。 E、掌握时间1小时学会建站。 国微CMS学校网站系统前台面 国微CMS学校网站系统后台管理 后台登陆路径:域名/admin.php  后台登陆用户名与密码是在安装过程中设置的,要谨记 后台面   相关阅读 同类推荐:站长常用源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值