欢迎客人!

• 开始前请阅读社区规则确保您顺利的熟悉本社区。注册用户可以提交资源,如果您有已发布资源的新版本,您可以随时更新版本!

• 文件链接损坏请在文件下方留言,我们将会及时更新来自备份服务器的新链接。如有其它问题请 提交工单 和我们联系!

• 我们拥有多账户检测系统,对于重复注册我们将采取严厉措施!

Tutorial/教程 XenForo 文件哈希值hashes修正方法

在 XenForo 中,文件的哈希值用于确保文件的完整性,特别是在安装或升级 XenForo 时,系统会检查文件的哈希值是否与官方提供的哈希值一致。如果你手动修改了 XenForo 的文件,系统可能会检测到文件的哈希值与原来的不匹配,进而可能导致警告或功能问题。

要修改 XenForo 文件的哈希值,通常需要更新 XenForo 的文件校验数据。以下是一些方法和步骤:

1.绕过哈希值校验

如果你只是需要暂时修改文件并希望绕过哈希校验,你可以在配置文件中禁用哈希校验:

  • 打开 src/config.php 文件。
  • 添加以下行:
  • 代码:
    $config['checkFileHashes'] = false;
  • 这样,XenForo 在后台运行时将不再检查文件的哈希值。
2. 更新文件哈希值(手动)

在某些 XenForo 版本中,你可以使用 XenForo 的命令行工具来重新生成或更新文件的哈希值:​

  • 通过 SSH 进入 XenForo 安装目录。
  • 使用 XenForo 提供的命令行工具重新生成文件的哈希值。这通常是通过 php cmd.php xf:file-check 命令来完成的,但这个命令主要用于检查文件而不是更新哈希。
  • 获取文件的新哈希值:使用 PHP 的 md5_file() 函数或类似工具获取文件的新 MD5 哈希值。一下为示例代码:
    代码:
    $hash = md5_file('path/to/your/file.php');
    echo $hash;
  • 更新 XenForo 的校验数据:找到保存哈希值的地方,并将新的哈希值替换旧的哈希值。这通常涉及到编辑 XenForo 的文件或数据库,具体取决于版本和设置。
如果 XenForo 使用的是 64 位哈希值(通常为 SHA-256 哈希值),而不是 32 位 MD5 哈希值,那么你需要生成并使用 SHA-256 哈希值。下面是更新和替换哈希值的步骤:

1. 生成 SHA-256 哈希值​

使用 sha256_file() 函数生成文件的 SHA-256 哈希值,以 XF.php 文件为例:
代码:
php -r "echo hash_file('sha256', 'src/XF.php');"
这些命令将分别生成每个文件的 SHA-256 哈希值。

确保将每个文件的哈希值记录下来并粘贴写入对应的hashes.json文件。

完成上述步骤后,运行文件检查命令确认问题是否解决:
代码:
php cmd.php xf:file-check

如果哈希值更新成功,应该不会再显示文件不一致的警告。

如果你经常需要修改文件并更新哈希值,可以考虑创建一个自定义的脚本或工具,来自动化哈希值的计算和更新。​

下面是一个使用PYTHON来运行的脚本,任意创建一个目录,把PYTHON脚本和需要查找的文件放入文件夹中,程序将自动查询文件夹中所有文件的哈希值,并记录在自动生成的hash_log.json文件中。
Python:
import hashlib
import os
import json
from pathlib import Path

# 计算文件的哈希值
def calculate_hash(file_path, hash_algorithm="sha256"):
    hash_func = getattr(hashlib, hash_algorithm)()  # 获取对应的哈希算法
    try:
        with open(file_path, 'rb') as file:
            while chunk := file.read(8192):  # 读取文件的每一部分
                hash_func.update(chunk)  # 更新哈希值
        return hash_func.hexdigest()  # 返回文件的哈希值
    except Exception as e:
        print(f"Error calculating hash for {file_path}: {e}")
        return None

# 将哈希值记录到JSON文件中
def update_hash_in_json(file_path, hash_value, hash_algorithm, log_file="hash_log.json"):
    # 检查是否已经存在 JSON 文件,若存在则加载现有数据
    if os.path.exists(log_file):
        with open(log_file, 'r') as f:
            log_data = json.load(f)
    else:
        log_data = []

    # 创建新的日志条目
    log_entry = {
        "file": str(file_path),
        "hash_algorithm": hash_algorithm.upper(),
        "hash": hash_value
    }

    # 将新的日志条目添加到现有数据中
    log_data.append(log_entry)

    # 将所有日志数据写回 JSON 文件
    with open(log_file, 'w') as f:
        json.dump(log_data, f, indent=4)

    print(f"Hash for {file_path} has been updated in the JSON log.")

# 搜索当前脚本所在目录的文件并处理,但排除脚本文件本身
def process_current_directory(hash_algorithm="sha256"):
    # 获取当前脚本所在目录
    current_directory = Path(__file__).parent
    script_name = Path(__file__).name  # 获取脚本文件名
    print(f"Processing files in directory: {current_directory}")
    
    for file_path in current_directory.rglob("*"):  # 遍历当前目录及子目录的所有文件
        if file_path.is_file() and file_path.name != script_name:  # 排除脚本文件本身
            print(f"Processing file: {file_path}")
            file_hash = calculate_hash(file_path, hash_algorithm)
            if file_hash:
                update_hash_in_json(file_path, file_hash, hash_algorithm)

# 主函数
if __name__ == "__main__":
    # 处理当前脚本所在目录中的所有文件,排除脚本文件本身
    process_current_directory("sha256")  # 使用 SHA-256 哈希算法
注意事项
  • 备份:在进行任何操作之前,确保你备份了 XenForo 安装目录和数据库,以防出现问题。
  • XenForo 更新:请注意,每次 XenForo 更新或升级时,文件的哈希值可能会重新计算,因此需要重新应用这些修改。
通过这些方法,你可以管理和修改 XenForo 中的文件哈希值,避免系统检测到文件被修改并发出警告。

Add/Plugins Post Reply by tl

chithanh22 submitted a new resource:

Post Reply by tl - Post Reply

Demo:
浏览附件419
Allow replies in thread on more levels. This add-on uses a post system so you can have all permissions, features in the system and when uninstalling add-on your data is still there.

You can easily turn on or off replies on specific forums. You may run the rebuild tree caches if you change this option frequently.

The add-on also allows the first post of the thread on all pages. It helps users read the thread content without...

Read more about this resource...

Tutorial/教程 如何安装 Wordpress 主题

  • 首先从源下载 theme.zip 文件到本地计算机。
  • 从 WordPress 管理区域,前往“外观”>“主题”,然后单击“添加新主题”
  • 添加新主题屏幕有一个新选项,上传主题
  • 主题上传表单现已打开,单击“选择文件”,选择计算机上的主题 zip 文件,然后单击“立即安装”

如何使用 FTP 安装 WordPress 主题​

  • 启动 Filezilla,输入您的登录详细信息并单击 Quickconnect。
  • 以下窗口包含远程站点和根目录(根目录是您的站点名称)。选择 /rootdirectory/web/content/wp-content/themes。
  • 在本地站点窗口中,选择包含已保存主题的文件夹,右键单击以获取更多选项,然后点击上传。
  • 您现在已成功将主题上传到 WordPress。最后,请登录控制面板,前往外观 > 主题,然后将鼠标悬停在新主题上。现在单击激活。
  • 剩下要做的就是检查您的新主题并看看您是否喜欢新的网站设计。

如何手动安装 WordPress 插件​

  • 从您的 WordPress 仪表板中,选择插件 > 添加新插件。
  • 单击“选择文件”,找到插件 .zip 文件,然后单击“立即安装”。
  • 安装完成后,点击激活插件。
通过 FTP 将插件添加到您的 WordPress 网站

  • 从 WordPress 目录或第三方来源将所需的插件下载为 .zip 文件。
  • 提取(或解压)插件文件。解压后的文件夹将与 .zip 文件同名。
  • 接下来,您需要使用 FTP 连接到您的 WordPress 网站的服务器。为此,您可以使用连接到主机服务器的 FTP 客户端来传输文件。
  • 打开 FTP 客户端后,使用用户名和密码连接到您的网站。您可能需要从托管服务提供商处获取这些凭据。
  • 在您的 WordPress 文件目录中,打开 wp-content 文件夹,然后打开插件文件夹。
  • 将您下载的解压后的插件文件夹上传到插件文件夹。
  • 返回 WordPress 信息中心并选择插件 > 已安装的插件。找到您的新插件并单击激活

Add/Plugins [TC] Avatar On Registration

gregor88 submitted a new resource:

[TC] Avatar On Registration - The plugin adds the ability to set an avatar during registration.

The add-on adds the ability to set a user avatar during registration.

Features:
  • Setting an avatar at registration
    • Requirement to set an avatar upon registration
Options: /admin.php?options/groups/usersAndRegistration/#tc_aor

浏览附件4252
浏览附件4253

Read more about this resource...

[XenGenTr] Hide Links To Visitors

gregor88 submitted a new resource:

[XenGenTr] Hide links to visitors - Hiding links for visitors

With this plugin created for XenForo 2, you can hide links added to the forum for visitors.
The theme hides the linker in the fields of messages, signatures, links.
浏览附件4193
浏览附件4194
浏览附件4195

The Options
Admin control panel >> Installations >> Xf Options >> [XGT] Hide link to visitors
浏览附件4196

Theme customizations
Admin control...

Read more about this resource...

过滤器

热门资源

后退
顶部