- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个脚本来计算 vBulletin 论坛中线程字数。基本上,我想从 mysql 数据库中提取该数据库并使用它。我没有使用 vBulettin 的经验,所以我正在考虑两种方法:
vBulletin 是否提供 API 来处理数据库内容。 (请允许我获取所有线程内容和 URL)。我几乎可以肯定有一个从哪里开始的链接?
有没有一种解决方案可以在不受 vBulletin 干扰的情况下执行此操作。这意味着从 mysql 数据库中手动获取数据并以典型方式执行操作。
如果 vBulettin 学习曲线太陡峭,我会更喜欢第二种方法。感谢您的建议。
最佳答案
这是针对 vBulletin 3 还是 4 的?
我主要使用 vB3,包含所有 vBulletin 资源的最快方法是使用以下代码在您的论坛目录中创建一个新的 php 文件。
<?php
error_reporting(E_ALL & ~E_NOTICE & ~8192);
require_once('./global.php');
var_dump($vbulletin);
那个 $vbulletin 变量是注册表对象,它包含几乎所有你需要的东西,包括数据库连接和它的读写函数、用户信息数据、清理过的 _POST 和 _REQUEST 值,以及更多(短语、 session 数据、缓存等)。
您将使用最多的 4 个数据库函数。
query_read 是当您期望循环遍历多个结果时会使用的方法。例如,如果您想计算单个线程中的所有单词,则需要使用 threadid 查询帖子表,遍历该线程中的每个帖子并计算消息中的所有单词。
注意:“TABLE_PREFIX”是config.php 中设置的常量。重要的是始终在表名前加上该常量,以防其他论坛决定为其表添加前缀。
<?php
error_reporting(E_ALL & ~E_NOTICE & ~8192);
require_once('./global.php');
$threadid = 1;
// fetch all post from a specfic thread
$posts = $vbulletin->db->query_read("
SELECT pagetext
FROM " . TABLE_PREFIX . "post
WHERE threadid = $threadid
");
/**
* Loop through each post.
*
* Here we use the "fetch_array" method to convert the MySQL data into
* a useable array. 99% of the time you'll use "fetch_array" when you
* use "query_read".
*
* $post will contains the post data for each loop. In our case, we only
* have "pagetext" avaliable to use since that's all we told MySQL we needed
* in our query. You can do SELECT * if you want ALL the table data.
*/
while ($post = $vbulletin->db->fetch_array($posts)) {
$totalWords = $totalWords + str_word_count($post['pagetext']);
}
/**
* Print the total number of words this thread contains.
*
* The "vb_number_format" is basically wrapper of php's "number_format", but
* with some vBulletin extras. You can visit the /includes/functions.php file
* for all the functions available to you. Many of them are just convenient
* functions so you don't have to repeat a lot of code. Like vBDate(), or
* is_valid_email().
*/
echo sprintf("Thread ID %i contains %s words", $threadid, vb_number_format($totalWords));
query_first 函数是您需要从数据库中获取一行时使用的函数。不需要循环或类似的东西。例如,如果您想从数据库中获取单个用户的信息 - 您不需要查询,但我们将以它为例 - 您可以使用类似这样的东西。
<?php
error_reporting(E_ALL & ~E_NOTICE & ~8192);
require_once('./global.php');
$userid = 1;
$user = $vbulletin->db->query_first("
SELECT *
FROM " . TABLE_PREFIX . "user
WHERE userid = $userid
");
echo sprintf("Hello, %s. Your email address is %s and you have %s posts",
$user['username'],
$user['email'],
vb_number_format($user['posts'])
);
最后,如果您想更新数据库中的内容,您可以使用“query_write”。这个功能非常简单。这个函数只接受任何 MySQL 更新插入或删除查询。例如,如果我需要更新用户的雅虎 ID,你会这样做。
<?php
error_reporting(E_ALL & ~E_NOTICE & ~8192);
require_once('./global.php');
$userid = 1;
$update = $vbulletin->db->query_write("
UPDATE " . TABLE_PREFIX . "user
SET yahoo = 'myYahooID@yahoo.com'
WHERE userid = $userid
");
if ($update) {
$userinfo = fetch_userinfo($userid);
echo sprintf("Updated %s yahoo ID to %s", $userinfo['username'], $userinfo['yahoo']);
}
希望这能帮助您入门。我建议您使用 vBulletin 3 一段时间,直到您对它感到满意为止。我想这对你来说会更容易。其中大部分将通过一些调整转化为 vBulletin 4,但该代码库对新手来说并不友好。
关于mysql - 拉取 vBulletin 中的所有帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7472826/
我使用 vbulletin 创建了一个网站,我在管理员中安装了 CMS 和 BLOG 模块,我的默认设置是论坛,但是当我们输入主页 url 时,它会将我重定向到 http://www.demo.com
我搜索了教程,但没有找到任何有用的教程。我想创建一个简单的插件,将“123”添加到论坛每个页面的标题中。 我试图去管理面板 ->创建新插件。但我不知道在标题中显示“123”需要什么钩子(Hook)。
为同一域中的 Django 项目和 vBulletin 板进行单点登录 (SSO) 的最简单方法是什么? 我有一个现有的 vBulletin 用户数据库。我查看了 Django 的 RemoteUse
我正在尝试通过论坛帮助一位 friend 设计他的 VBulletin 站点。他希望某些版 block 具有类似于网站的布局和大标题,而论坛版 block 具有更像论坛的不同风格。 有什么方法可以为
我正在尝试用 Python 编写一个程序来登录 vBulletin 论坛。 我只需要访问一个页面,但为了查看该页面,我必须登录。 这是我的代码: #-*- coding:utf-8 -*- impor
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
一整天我都在寻找这个问题的答案: 如何在不使用密码的情况下登录 vbulletin。 例如,我将请求中的用户名发送到模块并登录用户。 我发现的是: verify_authentication('use
我需要在网站的其余部分使用 vBulletin 身份验证系统。vB 有任何 API 吗? 我期待找到类似的东西: if($vBulletin->isAuthenticated()) { //
我想创建一个脚本来计算 vBulletin 论坛中线程字数。基本上,我想从 mysql 数据库中提取该数据库并使用它。我没有使用 vBulettin 的经验,所以我正在考虑两种方法: vBulleti
我们最近升级到 PHP 5.3(从 5.2)和 MySQL 5.1(从 5.0),并在 vbulletin 4 论坛上进行了数据库恢复。在这些搜索之后就完全停止工作了。 无论您搜索什么,最终都会在 /
一些垃圾邮件发送者已经破坏了我的 Vbulletin 论坛,其中包含大约 12000 个包含恶意网站链接的帖子。通过我网站上的管理工具删除这些帖子和线程需要几个小时。 我注意到所有三个线程都存储在数据
这是我在使用多个 vBulletin 数据库时一直遇到的问题。我无法编辑数据库来更改设置,例如 cookiepath、bburl 或它是否处于事件状态。我的意思是,我可以使用 PHPMyAdmin 更
我的论坛中有一个辅助脚本,允许我的用户从我的论坛上传一些东西。 我想允许我的用户从论坛上传附件文件,但 vbulletin 总是显示未注册的形式。 所以我想问有没有一种方法可以发送带有附件链接的用户名
我想在 vbulletin 的另一个页面上使用 {vb:raw human_verify} 吗? 当我在另一个模板中使用这个变量时,它不起作用。 它在某些模板(注册、搜索、..)上完美运行,但在其他模
我想获取 vBulletin 的注销哈希,以便我可以直接从我的主站点链接到注销位。 我该怎么做? (PHP) 最佳答案 注销哈希被加载到全局用户信息数组中,因此当您包含“global.php”文件时,
vBulletin 等脚本如何在没有 cron 作业的情况下启动常规维护作业?例如,vBulletin 不会实时更新线程 View 计数,并且根据其文档仅每小时更新一次。但是,他们不使用 cron 作
所以我几年前创建了这个 vBulletin 论坛,几个月前它开始时不时地通过电子邮件向我发送错误消息。由于我在创建网站时注册为论坛管理员,现在当出现错误时它会向我发送电子邮件。网站所有者和我聚在一起,
今天,我和我的同事就在我们的项目中选择数据类型进行了一些辩论。 我们是网络开发人员,我们使用 PHP 编写后端代码,对于数据库,我们使用 mySQL。 所以,我上网了一下,他们出于各种原因不推荐 EN
我正在尝试将“赞”灰色条移到签名正上方的“赞”链接左侧,右上角带有小图标。 例子: http://www.talkjesus.com/bible-study-hall/44722-antimonian
我正在尝试使用新的 vBulletin 4 制作自定义页面。 我的 PHP 文件使用以下代码: $templater = vB_Template::create('TEST'); $templater
我是一名优秀的程序员,十分优秀!