RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1446444
Accepted
Ian Markov
Ian Markov
Asked:2022-09-07 17:38:59 +0000 UTC2022-09-07 17:38:59 +0000 UTC 2022-09-07 17:38:59 +0000 UTC

modx 显示来自 ipb 论坛的最新主题

  • 772

modx 上有一个站点(MODX 3.0.1),还有一个 ipb 论坛(Invision Community v4.7.1),php 8.1。
我想将 ipb 论坛的最新主题带到 modx 站点。
在网上找到了关于modx和vbulletin整合的文章( https://habr.com/ru/post/93572/),以及vbulletin论坛到modx网站的话题输出( https://habr.com/ru/post/93572/ ) /habr.com/ru/post/93943/)。
我试图通过与这些文章类比来做到这一点。
从第一篇文章开始,我不明白全局 $vbulletin 来自哪里;
也许我不明白 ipb 中的哪个文件需要复制到 global_modx.php,所以我决定跳过它..

Для начала нам необходимо подготовиться, и первым будет файл global.php форума.
Я сделал так: скопировал его в global_modx.php (.../forum/global_modx.php), открыл для редактирования и удалил все после 891 строки (напоминаю, версия форума 3.8.1) — подключение стилей и т.д., т.е. последней строчкой в файле у меня вызов функции verify_ip_ban();

从论坛撤话题的文章来看,一切似乎都清楚了。我用 ipb 替换表和列的名称,添加到论坛外部数据库的连接,结果如下:

<?php
define('MODX_CORE_PATH', '/path/to/revo/core/');
define('MODX_CONFIG_KEY','config');
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
 
// Задаем подключения к сторонней базе данных:
$host = 'localhost';
$username = 'root';
$password = '123456';
$dbname = 'forum';
$port = 3306;
$charset = 'utf8';
 
$dsn = "mysql:host=$host;dbname=$dbname;port=$port;charset=$charset";
$xpdo = new xPDO($dsn, $username, $password);

$count = 10;
$forumlink = 'https://forum.mysite.ru/';
$sql = 'SELECT title as topic,tid,last_post,last_poster_id,last_poster_name,title_seo
FROM `forums_topics`
WHERE forum_id NOT IN ()
ORDER BY `last_post` DESC
LIMIT '.$count.';';
        
$res = $xpdo->query($sql); 
$txt = '';

while ($f_res = $modx->db->getRow($res, 'assoc')) {
//элементы массива названы вполне себе понятно
$txt .= $modx->parseChunk('forum_last_messages', 
    array(
        'forumlink' => $forumlink,
        'postid' => $f_res['last_poster_id'],                  
        'threadtitle' => $f_res['topic'],
        'title_seo' => $f_res['title_seo'],
        'lastposter' => $f_res['last_poster_name'],
        'forum' => $f_res['forum'],
        'postdate' => date("H:i", $f_res['last_post'])   //формат даты
        ),
    '[+',
    '+]'
    );
}
return $txt;

结果,网站错误

致命错误:未捕获的 PDOException:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ') ORDER BY 附近使用的正确语法last_post/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php:2549 第 3 行的 DESC LIMIT 10' 堆栈跟踪:#0 /public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO。 php(2549): PDO->query('SELECT title as...') #1 /public_html/core/cache/includes/elements/modx/revolution/modsnippet/17.include.cache.php(25): xPDO \xPDO->query('SELECT title as...') #2 /public_html/core/src/Revolution/modScript.php(88): include('/home/zamorinpa...') #3 /public_html/ core/src/Revolution/modParser.php(505): MODX\Revolution\modScript->process(NULL) #4 /public_html/core/src/Revolution/modParser.php(218): MODX\Revolution\modParser->processTag (Array, true) #5 /public_html/core/src/Revolution/modResource.php(521): MODX\Revolution\modParser->processElementTags('', '...', true, false, '[[', ']]', 大批,9) #6 /public_html/core/src/Revolution/modResource.php(469): MODX\Revolution\modResource->parseContent() #7 /public_html/core/src/Revolution/modResponse.php(72): MODX\ Revolution\modResource->prepare() #8 /public_html/core/src/Revolution/modRequest.php(154): MODX\Revolution\modResponse->outputContent(Array) #9 /public_html/core/src/Revolution/modRequest. php(138): MODX\Revolution\modRequest->prepareResponse() #10 /public_html/core/src/Revolution/modX.php(1495): MODX\Revolution\modRequest->handleRequest() #11 /public_html/index. php(63): MODX\Revolution\modX->handleRequest() #12 {main} 在第 2549 行的 /public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php 中抛出MODX\Revolution\modResource->prepare() #8 /public_html/core/src/Revolution/modRequest.php(154): MODX\Revolution\modResponse->outputContent(Array) #9 /public_html/core/src/Revolution/ modRequest.php(138): MODX\Revolution\modRequest->prepareResponse() #10 /public_html/core/src/Revolution/modX.php(1495): MODX\Revolution\modRequest->handleRequest() #11 /public_html/ index.php(63): MODX\Revolution\modX->handleRequest() #12 {main} 在第 2549 行的 /public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php 中抛出MODX\Revolution\modResource->prepare() #8 /public_html/core/src/Revolution/modRequest.php(154): MODX\Revolution\modResponse->outputContent(Array) #9 /public_html/core/src/Revolution/ modRequest.php(138): MODX\Revolution\modRequest->prepareResponse() #10 /public_html/core/src/Revolution/modX.php(1495): MODX\Revolution\modRequest->handleRequest() #11 /public_html/ index.php(63): MODX\Revolution\modX->handleRequest() #12 {main} 在第 2549 行的 /public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php 中抛出handleRequest() #11 /public_html/index.php(63): MODX\Revolution\modX->handleRequest() #12 {main} 在 /public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php 中抛出在线 2549handleRequest() #11 /public_html/index.php(63): MODX\Revolution\modX->handleRequest() #12 {main} 在 /public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php 中抛出在线 2549

在 WHERE forum_id NOT IN () 这一行中固定 WHERE forum_id NOT IN (0),忘记了 0。
现在报错是这样的

致命错误:未捕获错误:在 /public_html/core/cache/includes/elements/modx/revolution/modsnippet/17.include.cache.php:28 中调用 null 上的成员函数 getRow() 堆栈跟踪:#0 /public_html /core/src/Revolution/modScript.php(88): include() #1 /public_html/core/src/Revolution/modParser.php(505): MODX\Revolution\modScript->process(NULL) #2 /public_html /core/src/Revolution/modParser.php(218): MODX\Revolution\modParser->processTag(Array, true) #3 /public_html/core/src/Revolution/modResource.php(521): MODX\Revolution\modParser ->processElementTags('', '...', true, false, '[[', ']]', Array, 9) #4 /public_html/core/src/Revolution/modResource.php(469): MODX \Revolution\modResource->parseContent() #5 /public_html/core/src/Revolution/modResponse.php(72): MODX\Revolution\modResource->prepare() #6 /public_html/core/src/Revolution/modRequest.php(154): MODX\Revolution\modResponse->outputContent(Array) #7 /public_html/core/src/Revolution/modRequest.php(138): MODX\Revolution\modRequest->prepareResponse() #8 /public_html/core/src/Revolution/modX.php(1495): MODX\Revolution\modRequest->handleRequest() #9 /public_html/index.php(63): MODX\Revolution\modX->handleRequest() #10 {main} 在第 28 行的 /public_html/core/cache/includes/elements/modx/revolution/modsnippet/17.include.cache.php 中抛出MODX\Revolution\modX->handleRequest() #10 {main} 在第 28 行的 /public_html/core/cache/includes/elements/modx/revolution/modsnippet/17.include.cache.php 中抛出MODX\Revolution\modX->handleRequest() #10 {main} 在第 28 行的 /public_html/core/cache/includes/elements/modx/revolution/modsnippet/17.include.cache.php 中抛出

modx
  • 0 0 个回答
  • 0 Views

0 个回答

  • Voted
  1. Best Answer
    Anton Tarasov
    2022-09-07T20:43:39Z2022-09-07T20:43:39Z

    您是否设法连接到数据库?你可以这样检查:

    echo $o = ($xpdo->connect()) ? 'Подключено' : 'Ошибка подключения';
    

    并进一步

     if ($res) {
            $row = $res->fetch(PDO::FETCH_ASSOC);
            $res->closeCursor();
            print_r($row);
     }else{
            print_r($res->errorInfo());
     }
    
    • 0

相关问题

  • 通过 id_from_crm 输出电视字段

  • 一些 modx 页面的输出

  • modx minishop2付款电话[关闭]

  • Modx Evo、evoBabel主页url问题

  • MODX 存储块的最佳位置在哪里?

  • tv-参数值在pdoPage中不显示

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5