巧遇美女 - 术
type: channel
link: https://qymn.com/c/shu/
description: （下层：技巧、方法、动作） 具体技巧、手段、流程、执行方法
items: 完成一个destoon文章一键下载为doc或者pdf的插件
items: 折磨了半天的技术问题在这个点解决了

完成一个destoon文章一键下载为doc或者pdf的插件
type: item
date: 2026-05-31T01:41:00+08:00
description: 完成一个destoon文章一键下载为doc或者pdf的插件，整整一天，不太好处理各种问题哦<?php/**文章一键下载插件核心文件（无调试信息版）路径：module/article_download/download.php*/define('DT_ADMIN', false);define('NOFRAME', true);ob_clean(); // 清除缓冲区，避免干扰文件输出require '../../common.inc.php';define('MODULE_PATH', DT_ROOT . '/module/article_download/');define('MODULE_LIB', MODULE_PATH . 'inc/');error_reporting(E_ALL);ini_set('display_errors', 1);// --------------------------// 1. 参数验证// --------------------------$type = in_array($_GET['type'], ['doc', 'pdf']) ? $_GET['type'] : '';$itemid = intval($_GET['itemid']);$moduleid = intval($_GET['moduleid']);// 允许的模块ID列表（根据你的实际需求添加，如21、22、23等）$allow_moduleids = [21, 26, 33,41,40]; // 例如：支持模块21、22、23// 验证参数：类型有效、itemid正整数、moduleid在允许列表中if (empty($type) || $itemid < 1 || !in_array($moduleid, $allow_moduleids)) {exit("参数错误：请检查请求参数（支持的模块ID：" . implode(',', $allow_moduleids) . "）");}// --------------------------// 2. 数据库配置（固定表前缀）// --------------------------$table_prefix = 'xu_';$main_table = $table_prefix . 'article_' . $moduleid; // xu_article_21$content_table = $table_prefix . 'article_data_' . $moduleid; // xu_article_data_21// --------------------------// 3. 读取文章数据（关联主表和内容表）// --------------------------$sql = "SELECT m.title, c.contentFROM {$main_table} m INNER JOIN {$content_table} c ON m.itemid = c.itemid WHERE m.itemid = {$itemid} AND m.status = 3 LIMIT 1";$article = $db->get_one($sql);if (empty($article) || empty($article['title'])) {exit("文章不存在或未发布");}// 处理空内容$article['title'] = trim($article['title']) ?: "未命名文章_{$itemid}";$article['content'] = trim($article['content']) ?: "无内容";// --------------------------// 4. 检查依赖库// --------------------------$lib_path = DT_ROOT . '/module/article_download/inc/';$error = '';if ($type == 'doc') {if (!file_exists($lib_path . 'PHPWord/Autoloader.php')) {$error = "DOC生成库缺失，请检查PHPWord是否正确安装";}} else {if (!file_exists($lib_path . 'tcpdf/tcpdf.php')) {exit("PDF生成库缺失，请检查TCPDF是否正确安装于目录: " . $lib_path . 'tcpdf/');}}if ($error) {exit($error);}// ---------------…

折磨了半天的技术问题在这个点解决了
type: item
date: 2026-05-31T01:41:00+08:00
description: {sort:topname} {pboot:nav parent={sort:tcode}} [nav:name] {/pboot:nav}