Cuando se trata de sistemas nacionales de comentarios sociales, debemos mencionar algunos servicios representativos como Duosuo, Denglu, Youyan, Comments, NetEase Cloud Posts y Sohu Changyan. Hace unos años, cuando los comentarios sociales se hicieron populares, los sistemas de comentarios que venían con programas como WordPress no se utilizaban. Algunos incorporaron Weibo como comentarios de sitios web y algunos utilizaron servicios de terceros como Duosuo, Denglu y Youyan para reemplazar los comentarios. . de.
Una ventaja de utilizar un sistema de comentarios sociales de terceros es que les ahorra a los comentaristas la molestia de iniciar sesión. Sin embargo, en mi opinión, existe la desventaja fatal de que los datos de los comentarios se almacenan en manos de un tercero. En otras palabras, como blogger, no puedo garantizar la seguridad de los datos del sitio web una vez que se detenga el servicio de terceros, incluso si puedo exportar los datos de los comentarios, consumirá mucho tiempo y energía.
Ahora echemos un vistazo a algunos servicios representativos como Duosuo, Denglu, Youyan, Comments, NetEase Cloud Posts y Sohu Changyan. Los que actualmente están "medio muertos" son Youyan y Sohu Changyan. Otros básicamente han sido declarados oficialmente "muertos". en acción" (incluida la publicación de seguimiento de NetEase Cloud sobre estar "muerto en acción"). Algunas personas pueden argumentar que también hay Youyan y Sohu Changyan que pueden usarse.
En la actualidad, el sitio web oficial de Youyan básicamente no está disponible para mí. En cuanto a la cantidad de usuarios de Youyan, deberían ser "muy pocos". Echemos un vistazo a Sohu Changyan nuevamente. Vi este artículo en el sitio web oficial de Sohu: "Hable más sobre la culpa que quedó, deje que Changyan asuma el control de manera constante".
La llamada "olla" en realidad no es tan fácil de "arreglar". Esto me recuerda a Cuando se cerró 115 Netdisk, 360 Netdisk dijo que nunca se cerraría. Más tarde, cuando 360 Netdisk cerró su servicio, Baidu Netdisk se puso de pie y dijo que proporcionaría servicios normalmente. Luego, mire el Baidu Netdisk actual... y cuando WeChat dijo que cobra tarifas por los retiros de efectivo, Alipay se puso de pie y dijo que todavía es gratis. Más tarde, Alipay también empezó a cobrar comisiones por los retiros de efectivo y nunca vi a nadie volver a hablar.
Realmente espero que Sohu Changyan pueda ir más allá, de modo que quede suficiente tiempo para que nuestros amigos que todavía utilizan reseñas de terceros se den cuenta de que los datos más confiables están en sus propias manos. HashOver, que presentaremos en este artículo, es un sistema de comentarios PHP gratuito y de código abierto que puede ayudarnos a construir nuestro propio sistema de comentarios. Es fácil de realizar copias de seguridad y migrar, se puede integrar de forma remota y es seguro y confiable.
Para obtener más programas de creación de sitios web y alojamiento VPS, también puede consultar:
- Un webmaster que ha utilizado el alojamiento VPS de Alibaba Cloud durante tres años resumió las cinco características principales de Alibaba Cloud
- WHMCS integra VPS.net para activar automáticamente un tutorial de host VPS - venda servidores VPS en WHMCS
- Experiencia de host VPS.net VPS: verificación de cuenta y evaluación del rendimiento y velocidad del host VPS
1. Método de instalación de HashOver
Sitio web oficial de HashOver: http://tildehash.com/?page=hashover, página de inicio del proyecto: https://github.com/jacobwb/hashover-next. HashOver solo necesita PHP para ejecutarse, así que prepare un entorno LNMP.
Descargue: la versión HashOver 2.0 del sitio web oficial, cree una nueva carpeta en el directorio raíz del servidor: hashover y cargue el archivo HashOver 2.0 descargado en esta carpeta. Luego modifique los permisos del archivo de la siguiente manera:
Asegúrese de que todos los archivos tengan al menos permisos "0644"
Asegúrese de que todos los archivos PHP tengan al menos permisos "0755"
Asegúrese de que los permisos del directorio "hashover/pages" sean "0777"
Modifique el archivo de configuración básica de HashOver. Editar: hashover/scripts/settings.php, complete su correo electrónico de notificación en $notification_email, complete el símbolo de cifrado de 8 a 32 dígitos en $encryption_key, establezca el nombre de usuario de administración en $admin_nickname y establezca la contraseña de administrador en $admin_password . Como se muestra abajo:
2. Tutorial de uso de HashOver
HashOver se puede incrustar en cualquier página web. Puede llamarlo de forma remota o puede colocar HashOver y su sitio web en un servidor y llamarlo localmente. Las funciones son las siguientes:
1. Comentarios anidados
2. Admite editar o eliminar comentarios.
3. Apoya lo que te gusta o lo que no te gusta
4. Admite cinco métodos de clasificación inteligentes
5. Soporte en varios idiomas
6. Agregue automáticamente hipervínculos a las URL
7. Avatares de soporte
8. Admite imágenes de enlaces externos
9. Puedes personalizar el tema,
10. Admite etiquetas HTML personalizadas
11. CSS se puede personalizar
12. Admite la configuración del rango HTML
13. Admite filtrado de spam
14. Los comentarios tienen RSS
15. Enlace fijo de comentario personalizable
16. La dirección IP se puede bloquear
17. Admite la finalización de URL
18. Admite carga asincrónica AJax
Método JS:
<script type="text/javascript" src="/hashover/hashover.js"></script>
<noscript>你的浏览器需要支持JS才能加载此评论.</noscript>
Método PHP:
<?php $mode = 'php'; include('hashover.js'); ?>
Método de carga asincrónica:
<div id="hashover"></div>
<script type="text/javascript">(function() { var s = document.createElement('script'), t = document.getElementsByTagName('script')[0]; s.type = 'text/javascript'; s.async = true; s.src = "/hashover.php"; t.parentNode.insertBefore(s, t); })();</script>
Opciones de configuración de JS. Puede configurar las opciones correspondientes al cargar JS, como cerrar el cuadro de nombre de usuario, el cuadro de correo electrónico, etc.
<script type="text/javascript">
var rows="4"; // Sets "Comments" field 调试
var name_on="no"; // 禁用 "Name" field
var passwd_on="no"; // 禁用 "Password" field
var email_on="no"; // 禁用 "E-mail" field
var sites_on="no"; // 禁用 "Website" field
</script>
Este es el efecto del sistema de comentarios de HashOver.
3. Configuración del sistema HashOver
El archivo de configuración de HashOver: hashover/scripts/settings.php también proporciona muchas opciones de configuración. Aquí hay una selección de algunos códigos de configuración para explicación:
// 必填设置
public $notificationEmail = 'example@example.com'; // 新评论邮件提醒
protected $encryptionKey = '8CharKey'; // 加密key
protected $adminName = 'admin'; // 管理员登录用户名
protected $adminPassword = 'passwd'; // 管理员登录密码
// 基础设置
public $language = 'auto'; // 语言, for example 'en', 'de', etc. 'auto' to use system locale
public $theme = 'default'; // 主题模板
public $usesModeration = false; // 评论显示前是否需要审核
public $dataFormat = 'xml'; // 存储方式; 可选: xml, json, sql
public $defaultName = 'Anonymous'; // Default name to use when one isn't given
public $allowsImages = true; // 是否允许外链图片
public $allowsLogin = true; // 是否允许登录
public $allowsLikes = true; // 是否允许顶
public $allowsDislikes = false; // 是否允许踩
public $usesAJAX = true; // 是否开启 AJAX
public $collapsesUI = false; // 是否隐藏评论系统
public $collapsesComments = true; // Whether to hide comments and display a link to show them
public $collapseLimit = 3; // Number of comments that aren't hidden
public $replyMode = 'thread'; // 回复模式,可选 a 'thread' or as a 'stream'
public $streamDepth = 3; // In stream mode, the number of reply indentions to allow before the thread flattens
public $popularityThreshold = 5; // Minimum likes a comment needs to be popular
public $popularityLimit = 2; // Number of comments allowed to become popular
// 时间设置
public $serverTimezone = 'America/Los_Angeles'; // 时区
public $usesUserTimezone = true; // Whether comment dates should use the user's timezone (JavaScript-mode)
public $usesShortDates = true; // Whether comment dates are shortened, for example "X days ago"
public $timeFormat = 'g:ia'; // Time format, use 'H:i' for 24-hour format (see: http://php.net/manual/en/function.date.php)
public $dateFormat = 'm/d/Y'; // Date format (see: http://php.net/manual/en/function.date.php)
// 评论框设置, use true/false to enable/disable a field,
// use 'required' to require a field be properly filled
public $fieldOptions = array (
'name' => true,
'password' => true,
'email' => true,
'website' => true
);
// 操作设置
public $displaysTitle = true; // Whether page title is shown or not
public $formPosition = 'top'; // Position for primary form; options: 'top' or 'bottom'
public $usesAutoLogin = true; // Whether a user's first comment automatically logs them in
public $showsReplyCount = true; // Whether to show reply count separately from total
public $countIncludesDeleted = true; // Whether comment counts should include deleted comments
public $iconMode = 'image'; // 如何显示 avatar icons (可选 'image', 'count' or 'none')
public $iconSize = '45'; // 头像大小
public $imageFormat = 'png'; // Format for icons and other images (use 'svg' for HDPI)
public $usesLabels = false; // Whether to display labels above inputs
public $usesCancelButtons = true; // Whether forms have "Cancel" buttons
public $appendsCSS = true; // Whether to automatically add a CSS element to the page
public $displaysRSSLink = true; // 是否显示 RSS feed
// 技术设置
public $loginMethod = 'defaultLogin'; // Login method class for handling user login information
public $setsCookies = true; // Whether cookies are enabled
public $secureCookies = false; // Whether cookies set over secure HTTPS will only be transmitted over HTTPS
public $storesIPAddress = false; // 是否存储用户IP地址
public $allowsUserReplies = false; // 是否给评论者一个邮件提醒
public $noreplyEmail = 'noreply@example.com'; // 发送邮件提醒的邮箱
public $spamDatabase = 'remote'; // Whether to use a remote or local spam database
public $spamCheckModes = 'php'; // Perform IP spam check in 'javascript' or 'php' mode, or 'both'
public $gravatarDefault = 'custom'; // Gravatar theme to use ('custom', 'identicon', 'monsterid', 'wavatar', or 'retro')
public $gravatarForce = false; // Whether to force the themed Gravatar images instead of an avatar image
public $minifiesJavaScript = false; // Whether JavaScript output should be minified
public $minifyLevel = 4; // How much to minify JavaScript code, options: 1, 2, 3, 4
public $enablesAPI = true; // API: true = fully-enabled, false = fully disabled, or array of modes
public $latestMax = 10; // Maximum number of comments to save as latest comments
public $latestTrimWidth = 100; // Number of characters to trim latest comments to, 0 for no trim
public $userDeletionsUnlink = false; // Whether user deleted files are actually unlinked from the filesystem
// 图片设置,Types of images allowed to be embedded in comments
public $imageTypes = array (
'jpeg',
'jpg',
'png',
'gif'
);
// 远程域名加载设置,External domains allowed to remotely load HashOver scripts
public $allowedDomains = array (
// '*.example.com',
// '*.example.org',
// '*.example.net'
);
// 数据库选项,General database options
public $databaseType = 'sqlite'; // Type of database, sqlite or mysql
public $databaseName = 'hashover-pages'; // Database name
// SQL database options
public $databaseHost = 'localhost'; // Database host name
public $databaseUser = 'root'; // Database login user
public $databasePassword = 'password'; // Database login password
public $databaseCharset = 'utf8'; // Database character set
// Automated settings
public $isMobile = false;
// Technical settings placeholders
public $rootDirectory;
public $httpRoot;
public $httpScripts;
public $httpImages;
public $cookieExpiration;
public $domain;
Para obtener instrucciones detalladas sobre la configuración, consulte la explicación anterior. Hay dos configuraciones clave: idioma y hora. Si configura el idioma, configure "idioma" en "zh-cn" y recuerde cambiar la zona horaria a la zona horaria de Shanghai.
4. Problemas relacionados con HashOver
Plantilla de tema HashOver. Puedes especificar la plantilla del tema en la configuración: public $theme = ‘default’; y puedes modificar el estilo CSS según tus propias necesidades.
Notificación por correo electrónico de HashOver. HashOver no proporciona configuración SMTP y proporciona notificaciones por correo electrónico directamente a través de la función mail(), por lo que necesita instalar un servidor de correo como postfix o sendmail en el host y habilitar mail() en php.ini.
¿Cómo habilita HashOver el modo de almacenamiento MysqL? La configuración predeterminada es: public $dataFormat = 'xml'; es decir, se utiliza el método de almacenamiento xml. El principio es: el primer comentario se denomina "1.xml" y el segundo comentario se denomina "2.xml". ", Y así sucesivamente. Cuando un usuario responde a un comentario, crea otro archivo. Cuando se elimina un comentario, el visitante simplemente eliminará el archivo correspondiente.
La ventaja de utilizar el método de almacenamiento xml es que es fácil de migrar y la velocidad de respuesta es rápida. Si desea cambiar al almacenamiento de la base de datos, primero cambie public $dataFormat = 'xml' a sql y luego complete su base de datos en Opciones generales de base de datos. Si tiene una base de datos remota, complete la información de la base de datos remota.
Los comentarios de Disqus se importan a Hashover. Programa Java: https://github.com/ianrenton/disqus-to-hashover, el método de operación es el siguiente:
1. Primero descargue el código fuente de JAVA y compílelo en NetBeans o Eclipse (recuerde seleccionar el complemento JAXB)
2. Exporte los datos como
comments.xml
en segundo plano de Disqus y colóquelos en el directorio del programa compilado.3. Ejecute el programa JAVA compilado y se generará el directorio
hashoverpage
y cada archivo XML.4. Cargue el directorio
page
generado al directorio donde se encuentra HashOver en el servidor.
Además, HashOver se encuentra actualmente en la versión de prueba 2.0, por lo que todavía quedan muchos problemas por resolver. Los siguientes son posibles problemas en la versión actual. Si encuentra problemas similares, puede consultarlos.
Error de PDO. Después de seleccionar mysql y completar la información de la base de datos, apareció el siguiente mensaje de error: HashOver: ¡No se pudo incluir el archivo PDO.php! La razón es que la clase PDO en algún lugar olvidó agregar el espacio de nombres raíz. Actualmente, alguien ha enviado un PR para este problema. Podemos cambiarlo nosotros mismos antes de la fusión oficial.
#打开:hashover/scripts/parsesql.php
Line 76 在PDO前面加上“”
$fetchAll = $results->fetchAll (PDO::FETCH_NUM);
Line 111 同理
return (array) $result->fetch (PDO::FETCH_ASSOC);
Problema entre dominios de AJAX. Al habilitar el modo ajax en el archivo de configuración, encontrará que todas las solicitudes fallan. Debido a que hashover no maneja el acceso entre dominios (agregando el encabezado CORS), el navegador intercepta la solicitud. Puede agregar código en la parte superior de hashover/scripts/settings.php o configurarlo con Nginx/apache.
header("Access-Control-Allow-Origin:".(isset($_SERVER['HTTP_ORIGIN'])?$_SERVER['HTTP_ORIGIN']:"*"));
header("Access-Control-Allow-Credentials:true");
Problema al no guardar la información del usuario. hashover no maneja el acceso entre dominios, por lo que solo agregar el encabezado cors no puede guardar las cookies. La solución es encontrar XMLHttpRequest en hashover/scripts/javascript-mode.php y agregar withCredentials=true a todos los objetos XHR.
HashOver usa SMTP para enviar cartas. Esta parte es una reproducción de Weiyu de Weng. Para conocer el proceso de modificación específico, puede leer atentamente el artículo del blogger El segundo artículo de la serie hashover: correo electrónico SMTP . Aquí puede descargar los archivos smtp.php y writecomments.php
modificados por Weng: hashover-smtp.zip. Copia de seguridad: https://www.ucblog.net/wzfou/hashover-smtp-pack.zip
Descomprima el smtp.php
descargado y colóquelo en el directorio de scripts de hashover. Asegúrese de abrir el editor y reemplazar SMTP con su propia información, y luego sobrescriba el archivo original con writecomments.php.
Finalmente, se pueden implementar recordatorios de notificación por correo electrónico de respuesta a comentarios.
5. Resumen
HashOver es bastante conveniente de instalar y usar. El almacenamiento de datos de comentarios usa XML de forma predeterminada. Si desea cambiar al formato de base de datos, se recomienda utilizar un servidor dedicado para el almacenamiento de datos de comentarios y hacer referencia remota a los comentarios de HashOver en otras páginas web. Ya no tendrás que preocuparte por la pérdida de datos.
En la introducción de este artículo, también puede ver que HashOver tiene muchos problemas. Esto puede deberse en gran medida al hecho de que HashOver es un programa personal mantenido por desarrolladores extranjeros y, afortunadamente, proporciona una gran cantidad de opciones de configuración para que todos puedan personalizar. Los amigos interesados pueden ir al sitio web oficial de HashOver para leer la documentación de desarrollo.
PD:Registro de actualización del artículo:
El 19 de agosto de 2017, HashOver se actualizó para utilizar SMTP para enviar cartas.