Products
GG网络技术分享 2025-03-18 16:14 1
Press,一个wordpress的java代替版本,使用JFinal开发。支持类似wordpress的几乎所有功能,比如:模板,插件等。同时在模板上,JPress提出了“模板即模型”的概念,方便模板制作人灵活制作业务模型,移除了widget等繁杂功能,同时在模板和插件制作上比wordpress更加灵活简洁。
但是,JPress又不是wordpress的java版本,它天生融合了微信公众平台,整合了国内众多云平台、短信发送、邮件发送平台,独创的“模板即模型”概念是wordpress所不具备的,只有资深的wordpress玩家才能体会里面的微妙关系。同时后续会添加微信文章同步,QQ公众平台,今日头条,一点资讯等新媒体的文章同步功能,更加国产和本地化。
在功能方面
支持自定义模型,自定义模型通过模板来定义,而不是后台功能。同时模型内容支持自定义类别,比如文章模型支持专题、分类、标签等类别。
支持多模板引擎,默认使用Freemarker,模板制作者可以使用其他引擎比如thymeleaf来渲染,同时支持后台在线编辑模板(目前暂时只支持freemarker引擎)。
支持多数据库类型,可以配置不同的数据库(目前暂只支持mysql)。
支持多编辑器,后台可视化编辑和markdown编辑自由切换,默认支持在线图片编辑和代码高亮等功能。
支持插件化,几行代码就可以完成一个插件的开发,git.oschina.net和github上已经有插件的helloworld实例。
支持自定义URL,网站内容URL风格自定义。
API支持,方便APP或其他第三方调用数据。
国际化支持,使用JPress轻松制作任何语言的网站。
极简的SEO功能,可以为每篇文章、每个分类、每个标签单独设置SEO,支持sitemap输出。
用户注册支持邮件和短信验证,目前短信服务商暂时只支持阿里大鱼。
支持CDN设置,包括七牛,阿里云,又拍云等。
上传图片支持水印设置,同时上传图片自动剪切成为模板需要的多种图片尺寸,保证图片显示不会拉伸。
用户登录支持第三方登录,支持QQ、微信、微博、开源中国、github、Facebook、twitter、linkedin(目前只完成QQ、微信、微博、开源中国、github的登陆)。
在微信方面
支持微信菜单设置。
支持自动回复,添加关键字和回复内容。
支持默认回复,包括:用户关注时、进入多客服时、退出多客服时、发送图片时、发送语音时、发送视频时、发送位置时、发送连接时、用户扫描了带参数的二维码时、用户摇一摇时。
所有的自动回复或默认回复支持“高级回复”功能,比如回复一篇文章,回复一个网址…高级回复是由JPress内置开发的特殊回复,但完全可配置,今后会增加更多的“高级回复”功能。
自动回复或默认回复支持插件回复,调用JPress插件完成回复。
支持文章搜索,回复关键字即可返回关键字匹配文章。
未来会支持文章同步或微信导入等实用功能。
在技术方面
自豪的采用了JFinal作为核心,JPress也是得益于JFinal灵活的架构。在JFinal framework开源体系里,JPress关心每行逻辑的实现,重视每行代码质量,应该属于JFinal的最佳实践,所以也应该是每个JFinaler必读的项目。
使用Freemarker和thymeleaf作为模板引擎。JPress内置的独创缓存,使得的UI渲染速度已经和模板引擎无关。
使用了tinymce做可视化编辑器,使用simplemde做markdown编辑器。两者可以后台自由切换。
文件和图片上传的UI插件使用了fine-uploader。
在前端上,JPress使用了jquery,bootstrap,admin lte,font-awesome,x-editable,fastclick,toastr,tag-editor,pace,layer等。
在安全方面,尽管我个人做了非常多的努力,已经在XSS,CSRF,SQL注入,Cookie安全等方面做了很多的工作,但是还是需要更多的人来一起挖掘和完善,安全是一个永恒的话题。(但是对于新手朋友来说,这些安全应该都是值得去学习和了解的,不是吗?)
支持分布式部署,JPress重写了HttpSession,使用ehcache实现了session的功能,同时在项目中大量依赖于cookie,在分布式架构上毫无压力。
模板
插件
用户
角色和权限
微信
SEO
其他
本文实例讲述了wordpress给文章生成二维码的方法。分享给大家供大家参考。具体实现方法如下:
最简单的调用办法就是直接调用google,代码如下:
<img src=\"https://chart.googleapis.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=L|4&chl=<?php the_permalink(); ?>\" width=\"150\" height=\"150\" alt=\"QR 码\"/> |
上面的代码中只要修改 150 这个图片大小就好了,代码如下:
<?php the_permalink(); ?> |
是自动获得文章链接,如果要生成博客站点的二维码只要替换成博客域名固定链接就可以了,我给改了下,封装成函数,这样图片大小可以改变,不过其实使用起来也不大方便,因为用主题时即使是函数肯定也是写死的,除非结合后台设置二维码图片大小,所以用处不大.
上面方法是直接通过 google 的 api 生成图片,有些地方可能因为网络问题,会很慢,所以小蝴蝶同学在胡长萌的要求下,又做了本地缓存图片的处理
一、functions.php 里加入代码:
function get_qr($url,$path,$qrpic){ set_time_limit (10); //设置十秒超时 $destination_folder = $path?$path.\'/\':\'\'; $localname = $destination_folder .$qrpic; $file = fopen ($url, \"rb\"); //fopen函数的r+模式: 读写方式打开 文件指针指向文件头 if ($file) { $newf = fopen ($localname, \"wb\"); // w+,读写方式打开 文件指针指向文件头 如果文件不存在则尝试创建之 if ($newf) while(!feof($file)) { fwrite( $newf, fread($file, 1024 * 2 ), 1024 * 2 ); //写入文件,fread控制文件最大的大小,这里是2M } } if ($file) { fclose($file); //关闭fopen打开的文件 } if ($newf) { fclose($newf); } } |
二、在网站根目录建立一个叫qrcode的新文件夹,确保有写入权限
三、以下代码放到需要输出二维码图片的地方,如 single.php,代码如下:
<?php $localqr = ABSPATH .\'qrcode/\'.get_the_id().\'.jpg\'; if (!file_exists($localqr)) {//如果图片已经存在,则不会再次保存 get_qr( \"http://chart.googleapis.com/chart?cht=qr&chs=100x100&choe=UTF-8&chld=L|4&chl=\".get_permalink() ,\"qrcode\", get_the_id().\".jpg\");//图片名以文章id命名 } ?> <img src=\"<?php echo home_url( \'\' ); ?>/qrcode/<?php the_id()?>.jpg\" width=\"100\" height=\"100\" alt=\"QR 码\"/> <!--默认二维码图片大小是100*100,如果要改,需要改4个地方,已经用蓝色标注--> |
希望本文所述对大家的WordPress建站有所帮助。
Demand feedback