<?php
/*
Plugin Name: 网址数据极速导入器
Plugin URI: https://www.example.com/
Description: 专为导入 CSV 格式网址数据设计,支持自动创建分类。
Version: 1.0
Author: AI助手
Author URI: https://www.example.com/
*/
// 注册激活/卸载事件(留空即可)
RegisterPlugin("ImportSites","ActivePlugin_ImportSites");
function ActivePlugin_ImportSites() {
// 插件激活时执行
}
function InstallPlugin_ImportSites() {
// 插件安装时执行
}
function UninstallPlugin_ImportSites() {
// 插件卸载时执行
}
// 添加左侧菜单
Add_Filter_Plugin('Filter_Plugin_Admin_LeftMenu', 'ImportSites_AddMenu');
function ImportSites_AddMenu(&$m) {
global $zbp;
// 在“插件管理”旁边添加一个菜单项
$m['import_sites'] = MakeTopMenu("root", '网址导入器', $zbp->host . "zb_users/plugin/ImportSites/main.php?action=admin", 'mng_Website');
}
// 处理导入逻辑
if (GetVars('action', 'GET') == 'admin') {
// 简单的后台界面
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['csvfile'])) {
ImportCSV($_FILES['csvfile']['tmp_name']);
} else {
echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>网址导入器</title></head><body>';
echo '<h1>CSV 网址数据导入工具</h1>';
echo '<p>请上传 UTF-8 编码的 CSV 文件。</p>';
echo '<p>文件列顺序要求:<strong>网站名称 | 网址链接 | 网站描述 | 分类名称</strong></p>';
echo '<form method="post" enctype="multipart/form-data">';
echo '<input type="file" name="csvfile" accept=".csv" required />';
echo '<input type="submit" value="开始导入" class="button" />';
echo '</form>';
echo '</body></html>';
exit();
}
}
// 核心导入函数
function ImportCSV($filepath) {
global $zbp;
$zbp->LoadLang('zb_system/lang/cn/main.xml'); // 加载语言包
if (($handle = fopen($filepath, "r")) !== FALSE) {
// 读取***行(表头)并跳过
fgetcsv($handle, 1000, ",");
$count = 0;
$catCache = array(); // 缓存分类,避免重复查询
while (($data = fgetcsv($handle, 2000, ",")) !== FALSE) {
// 对应 Excel 的列:0=标题, 1=链接, 2=描述, 3=分类名
$title = trim($data[0]);
$url = trim($data[1]);
$desc = trim($data[2]);
$catName = trim($data[3]);
if (empty($title) || empty($url)) continue;
// 1. 处理分类(如果不存在则创建)
$catID = 0;
if (isset($catCache[$catName])) {
$catID = $catCache[$catName];
} else {
$cats = $zbp->GetCategoryList(array('*'), array(array('=', 'Name', $catName)));
if (count($cats) > 0) {
$catID = $cats[0]->ID;
} else {
// 自动创建分类
$newCat = new Meta;
$newCat->Name = $catName;
$newCat->Save();
$catID = $newCat->ID;
}
$catCache[$catName] = $catID;
}
// 2. 创建文章
$post = new Post;
$post->Title = $title;
$post->CategoryID = $catID;
$post->AuthorID = 1; // 默认给管理员ID 1
$post->Status = 0; // 0=公开, 1=草稿, 2=审核
$post->Type = 0; // 0=文章, 1=页面
$post->Alias = ''; // 自动生成别名
// 组合内容:链接 + 描述
$content = '<p><strong>访问地址:</strong><a href="' . $url . '" target="_blank">' . $url . '</a></p>';
$content .= '<p><strong>简介:</strong>' . $desc . '</p>';
$post->Content = $content;
$post->Intro = $desc; // 摘要
$post->PostTime = time(); // 当前时间
$post->Save();
$count++;
}
fclose($handle);
echo "导入成功!共处理了 {$count} 条数据。<br><a href='main.php?action=admin'>返回继续导入</a>";
} else {
echo "无法打开文件,请检查格式。";
}
exit();
}


