JPress es un reemplazo de Java para WordPress, desarrollado con JFinal. Admite casi todas las funciones similares a WordPress, como plantillas, complementos, etc. Al mismo tiempo, en términos de plantillas, JPress propone el concepto de "plantilla como modelo", que facilita a los productores de plantillas crear modelos de negocios de manera flexible, elimina funciones complicadas como widgets y es más flexible y conciso que WordPress en términos de producción de plantillas y complementos.
Sin embargo, JPress no es el Java de WordPress. Está naturalmente integrado con la plataforma pública WeChat, integrando muchas plataformas de nube nacionales, envío de SMS y plataformas de envío de correo electrónico. El concepto original de "plantilla como modelo" no está disponible en WordPress, y solo. Solo los jugadores experimentados de WordPress pueden comprender la sutil relación interna. Al mismo tiempo, en el futuro se agregarán la función de sincronización de artículos de WeChat, la plataforma pública QQ, Toutiao, Yidian y otros medios nuevos, haciéndola más nacional y localizada.
En términos de funcionalidad
Admite modelos personalizados, que se definen mediante plantillas en lugar de funciones en segundo plano. Al mismo tiempo, el contenido del modelo admite categorías personalizadas. Por ejemplo, el modelo de artículo admite temas, categorías, etiquetas y otras categorías.
Admite múltiples motores de plantillas. Freemarker se usa de forma predeterminada. Los creadores de plantillas pueden usar otros motores como thymeleaf para renderizar. También admite la edición en línea de plantillas en segundo plano (actualmente solo se admite el motor freemarker).
Admite múltiples tipos de bases de datos y puede configurar diferentes bases de datos (actualmente solo se admite mysql).
Admite múltiples editores, cambio gratuito entre edición visual de fondo y edición de rebajas, y admite funciones como edición de imágenes en línea y resaltado de código de forma predeterminada.
Admite complementos y puede completar el desarrollo de un complemento con solo unas pocas líneas de código. Ya existen instancias de helloworld del complemento en git.oschina.net y github.
Admite URL personalizadas y personalización del estilo de URL del contenido del sitio web.
El soporte API facilita que la aplicación u otros terceros llamen datos.
Soporte de internacionalización, utilice JPress para crear fácilmente un sitio web en cualquier idioma.
Función SEO minimalista, puede configurar SEO por separado para cada artículo, cada categoría y cada etiqueta, y admitir la salida de mapas del sitio.
El registro de usuario admite la verificación por correo electrónico y SMS. Actualmente, los proveedores de servicios de SMS solo admiten Alibaba Dayu.
Admite configuraciones de CDN, incluidas Qiniu, Alibaba Cloud, Youpai Cloud, etc.
Las imágenes cargadas admiten configuraciones de marcas de agua y las imágenes cargadas se cortan automáticamente en varios tamaños de imagen requeridos por la plantilla para garantizar que la visualización de la imagen no se estire.
El inicio de sesión del usuario admite el inicio de sesión de terceros y admite QQ, WeChat, Weibo, Open Source China, Github, Facebook, Twitter y LinkedIn (actualmente solo se completa el inicio de sesión en QQ, WeChat, Weibo, Open Source China y Github).
En WeChat
Admite la configuración del menú WeChat.
Admite respuestas automáticas, adición de palabras clave y contenido de respuesta.
Admite respuestas predeterminadas, que incluyen: cuando el usuario presta atención, cuando ingresa al servicio multicliente, cuando sale del servicio multicliente, cuando envía imágenes, cuando envía voz, cuando envía video, cuando envía ubicación, cuando envía conexión, cuando el usuario escanea El código QR con parámetros, cuando el usuario lo agita.
Todas las respuestas automáticas o respuestas predeterminadas admiten la función de "respuesta avanzada", como responder a un artículo, responder a una URL... Las respuestas avanzadas son respuestas especiales integradas en JPress, pero son totalmente configurables y se incluirán más "respuestas avanzadas". agregado en la función futura.
La respuesta automática o la respuesta predeterminada admite la respuesta del complemento y llama al complemento JPress para completar la respuesta.
Admite la búsqueda de artículos. Responder a palabras clave devolverá artículos que coincidan con palabras clave.
En el futuro se admitirán funciones prácticas como la sincronización de artículos o la importación de WeChat.
En términos de tecnología
JPress se enorgullece de utilizar JFinal como núcleo y también se beneficia de la arquitectura flexible de JFinal. En el sistema de código abierto del marco JFinal, JPress se preocupa por la implementación de cada línea de lógica y presta atención a la calidad de cada línea de código. Debería estar entre las mejores prácticas de JFinal, por lo que también debería ser un elemento de lectura obligada. para cada JFinaler.
Utilice Freemarker y thymeleaf como motores de plantillas. El caché único integrado en JPress hace que la velocidad de renderizado de la interfaz de usuario sea independiente del motor de plantilla.
Tinymce se utiliza como editor visual y simplemde se utiliza como editor de rebajas. Los dos se pueden cambiar libremente en segundo plano.
El complemento de interfaz de usuario para cargar archivos e imágenes utiliza el cargador fino.
En la interfaz, JPress usa jquery, bootstrap, admin lte, font-awesome, x-editable, fastclick, tostador, tag-editor, pace, Layer, etc.
En términos de seguridad, aunque personalmente he hecho muchos esfuerzos y he trabajado mucho en XSS, CSRF, inyección SQL, seguridad de cookies, etc., todavía se necesita más gente para investigar y mejorar juntos. La seguridad es una eternidad. . tema. (Pero para los amigos novatos, vale la pena aprender y comprender estas medidas de seguridad, ¿verdad?)
Para admitir la implementación distribuida, JPress reescribe HttpSession y usa ehcache para implementar la función de sesión. Al mismo tiempo, el proyecto depende en gran medida de las cookies, por lo que no hay presión sobre la arquitectura distribuida.
JPress tiene las siguientes características
1. Luz.
Es tan liviano como solo 8 tablas de datos, pero puede realizar casi todas las funciones de WordPress. Los paquetes jar dependientes también son extremadamente livianos. Actualmente, solo existen cos-26Dec2008.jar, druid-1.0.16.jar, ehcache-2.7.5.jar, fastjson-1.2.7.jar, freemarker-2.3.23. jar y javax mail.jar, jfinal-2.2-bin-with-src.jar, jfinal-weixin-1.7-bin-with-src.jar, jsoup-1.8.3.jar, log4j-1.2.17.jar. , mysql-connector- java-5.1.36.jar, slf4j-api-1.7.7.jar, slf4j-log4j12-1.7.7.jar, jetty-server-8.1.8.jar Estos 14 paquetes jar, entre los que se encuentra jetty -server-8.1 .8.jar no es necesario y solo se utiliza para facilitar la depuración.
El proyecto completo, incluido el paquete jar, ocupa aproximadamente 20 MB.
2. Rápido.
No importa cuán compleja sea la página, JPress responde en casi 10 milisegundos. Al mismo tiempo, JPress admite Alibaba Cloud, Qiniu, Youpaiyun y otros CDN como aceleración, y admite la implementación distribuida y otras funciones. Kong, solo se puede usar con "rápido" para describir.
3. Flexibles.
JPress propone el concepto de "plantilla como modelo". Los productores de plantillas pueden utilizar JPress para crear blogs, sistemas de noticias, foros, comunidades de preguntas y respuestas, centros comerciales... además de su función de complemento flexible, se puede utilizar para crear casi cualquier tipo. del sitio web.
4. Nacional.
Debido a que se fabrica en China, se adapta más a las necesidades del pueblo chino. JPress se integra naturalmente con la cuenta pública de WeChat. JPress tiene la función de envío de SMS incorporada de Alibaba Big Fish y admite buzones QQ, buzones 163, etc. como servidores de envío de correo. En el futuro, los usuarios de notificación y envío de mensajes de plantilla de WeChat. añadirse y otras funciones que estén más en consonancia con las necesidades del pueblo chino.
Lo más importante es
JPress utiliza el acuerdo de código abierto LGPL más flexible, que no está al mismo nivel que los productos nacionales de "código abierto" que utilizan acuerdos privados.
Registro de cambios de jpress v4.2.0
Nuevo: agregue un interruptor de código de verificación en segundo plano para facilitar las pruebas automatizadas en ciertos escenarios
Nuevo: admite la publicación de productos de 0 yuanes. Cuando el monto del pago es 0, el pago directo se realiza correctamente. Gracias a @AlienJunX.
Nuevo: la función de personalizar el directorio de instalación del complemento facilita la instalación del complemento y el complemento aún está disponible al compilar y borrar el directorio de destino.
Optimización: mejore el módulo de artículos y agregue la función de recopilación, gracias @ el mouse que asusta al gato hasta la muerte
Optimización: la configuración del sistema de opciones permite pasar datos vacíos para borrar la configuración
Optimización: ajuste el tamaño predeterminado del archivo adjunto para cargar. El tamaño predeterminado para las imágenes es 10 MB y el tamaño predeterminado para otros archivos es 100 MB.
Optimización: actualice Jboot, Log4j2 hasta esto
Solución: el problema de que las palabras clave ilegales personalizadas en segundo plano no son válidas
Solución: Es posible que la opción de eliminación a través de API no surta efecto a tiempo
Solución: el complemento depende de archivos jar externos, lo que puede causar el problema de no poder instalarse en algunos casos.
Solución: se produce un error 500 después de que el pago de WeChat H5 regresa exitosamente a la página, gracias @AlienJunX
Solución: cuando se inserta un archivo adjunto en un artículo y se produce un error de que el archivo adjunto es demasiado grande, no aparece ningún mensaje en la página.
Corregido: la imagen del editor CKEditor no se puede pegar ni cargar