| 插件名稱 | 多網(wǎng)站系統(tǒng) V4.10 |
| 插件作者 | 迅睿官方團(tuán)隊(duì) |
| 最近更新 | 2025-07-09 15:01:41 |
| 檢查按鈕增加目錄訪問權(quán)限驗(yàn)證 網(wǎng)站列表下方增加更新緩存按鈕 |
官網(wǎng)的多網(wǎng)站系統(tǒng),使用火車頭采集器,無法獲取主站之外的其他站點(diǎn)的分類,無法發(fā)布到內(nèi)容。
切換到其他站點(diǎn)后臺(tái),看到有火車頭采集插件,然后拷貝了 dayrui,My 2個(gè)目錄,把插件也拷貝到了其他站點(diǎn)的站點(diǎn)目錄,然后返回到火車頭采集插件里再測試獲取分類,依然獲取不到。
插件版權(quán):官方插件
插件名稱:多網(wǎng)站系統(tǒng)
$this->_module_init('news', 222); // news 是模塊目錄,222是站點(diǎn)id參考文檔:《火車頭內(nèi)容采集范例》
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
第一個(gè)問題:下面的代碼是我用的火車頭采集插件的代碼,幫我看看應(yīng)該怎么改;
第二個(gè)問題:多站點(diǎn)插件,其他站點(diǎn)是寶塔單獨(dú)創(chuàng)建,并非主站子目錄,所以其他站點(diǎn)的站點(diǎn)目錄根本沒有火車頭采集插件,是否需要把主目錄插件的文件按照主目錄的結(jié)構(gòu)拷貝過來?
回復(fù)@官方插件技術(shù)-何老師
<?php /** * 火車采集器接口 */ namespace Phpcmf\Controllers; use Phpcmf\Service; use Phpcmf\Table; class Locomotive extends Table { protected $model = "news"; protected $inputip = ''; protected $u_id = 1; public $uid = 1; /** * 構(gòu)造函數(shù) */ public function __construct(...$params) { if (!defined('APP_LOCOMOTIVE')) exit('入口文件錯(cuò)誤'); parent::__construct(...$params); $this->is_data = 1; $config = \Phpcmf\Service::M()->db->table('locomotive_config') ->select('code,random,release,draft,contentupdate,hits_min,hits_max,isshare') ->get()->getResultArray(); $this->share = $config[0]; $this->alone = $config[1]; $this->book = $config[2]; $this->bbs = $config[3]; } public function getCate(){ $auth = $this->share['code']; $this->input = Service::L('input'); if ($this->input->get('auth') != $auth) exit('權(quán)限認(rèn)證失敗'); $cate = \Phpcmf\Service::M()->db->table(SITE_ID.'_share_category')->get()->getResultArray(); foreach ($cate as $ca) { if($ca['mid'] != '' && $ca['tid'] == 1 && $ca['child'] == 0){ echo '<h1>'.$ca['name'].'<=>'.$ca['id'].'</h1>'.PHP_EOL; } } } /** * 采集入庫 */ public function add() { $auth = $this->share['code']; $draft = $this->share['draft']; $isupdate = $this->share['contentupdate']; $hits_min = $this->share['hits_min']; $hits_max = $this->share['hits_max']; $this->input = Service::L('input'); if ($this->input->get('auth') != $auth) exit('權(quán)限認(rèn)證失敗'); if ($this->share['release'] != 1) exit('已關(guān)閉發(fā)布狀態(tài)'); $add = array(); $data = $this->input->request('data'); $catename = \Phpcmf\Service::M()->db->table(SITE_ID.'_share_category') ->where('id', (int)$data['catid']) ->get()->getResultArray(); $this->model = $catename[0]['mid']; $this->content_model = \Phpcmf\Service::M('Content', $this->model); $this->_module_init($this->model, SITE_ID, $this->module['share']); if (!$data['catid']) exit('欄目不存在'); if (!$data['catid'] || !$data['title']) exit('數(shù)據(jù)不完整'); // 按字段來歸類 $field = $this->get_cache('module-'.SITE_ID.'-'.$this->model, 'field'); foreach ($field as $t) { $name = $t['fieldname']; try{ //單文件 if ($t['fieldtype'] == "File"){ if ($data[$name]){ $data[$name] = dr_get_file($this->down_file(trim($data[$name]))); } } //多文件 if ($t['fieldtype'] == "Files"){ if (stripos($data[$name],"|") !== false){ $data[$name] .= "|"; } $url_arr = explode("|",$data[$name]); unset($data[$name]); foreach ($url_arr as $k => $v){ $url = trim($v); if (!empty($url)){ $data[$name]['title'][$k] = $url; $data[$name]['file'][$k] = $this->down_file($url); $data[$name]['description'][$k] = ""; } } $data[$name] = json_encode($data[$name]); } if ($t['fieldtype'] == "Image"){ if (stripos($data[$name],"|") !== false){ $data[$name] .= "|"; } $url_arr = explode("|",$data[$name]); unset($data[$name]); foreach ($url_arr as $k => $v){ $url = trim($v); if (!empty($url)){ $data[$name][$k] = $this->down_file($url); } } $data[$name] = json_encode($data[$name]); } if ($t['fieldtype'] == "Images"){ if (stripos($data[$name],"|") !== false){ $data[$name] .= "|"; } $url_arr = explode("|",$data[$name]); unset($data[$name]); foreach ($url_arr as $k => $v){ $url = trim($v); if (!empty($url)){ $data[$name][$k] = $this->down_file($url); } } $data[$name] = json_encode($data[$name]); } if ($t['fieldtype'] == 'Date'){ if ($data[$t['fieldname']]){ $data[$t['fieldname']] = strtotime($data[$t['fieldname']]); } } if ($t['fieldtype'] == 'Time'){ $data[$name] = $data[$name]; } if ($t['fieldtype'] == 'Linkage'){ if ($data[$t['fieldname']]) { $datavalue = explode('>', $data[$t['fieldname']]); $linkage = \Phpcmf\Service::M()->db->table('linkage') ->select('id') ->where('code', $t['setting']['option']['linkage']) ->get()->getResultArray(); if (count($datavalue) > 1){ for($i = 0; $i < count($datavalue)-1; $i++){ $linkagelist = \Phpcmf\Service::M()->db->table('linkage_data_'.$linkage[0]['id']) ->select('id') ->where('name', $datavalue[$i]) ->get()->getResultArray(); $piddata[$i] = $linkagelist[0]['id']; } $arr = array_merge([0],$piddata); $linkagevalue = \Phpcmf\Service::M()->db->table('linkage_data_'.$linkage[0]['id']) ->select('id') ->where('pids',implode(',', $arr)) ->where('name', $datavalue[count($datavalue)-1]) ->get()->getResultArray(); $data[$t['fieldname']] = $linkagevalue[0]['id']; }else{ $linkagelist1 = \Phpcmf\Service::M()->db->table('linkage_data_' . $linkage[0]['id']) ->select('id') ->where('name', $data[$name]) ->get()->getResultArray(); $data[$t['fieldname']] = $linkagelist1[0]['id']; } } } if ($t['fieldtype'] == 'Linkages'){ if ($data[$t['fieldname']]) { $linkdata = explode('|', $data[$t['fieldname']]); $linkage = \Phpcmf\Service::M()->db->table('linkage') ->select('id') ->where('code', $t['setting']['option']['linkage']) ->get()->getResultArray(); $linkid = []; foreach ($linkdata as $key => $ld){ $datavalue = explode('>', $ld); if (count($datavalue) > 1){ for($i = 0; $i < count($datavalue)-1; $i++){ $linkagelist = \Phpcmf\Service::M()->db->table('linkage_data_'.$linkage[0]['id']) ->select('id') ->where('name', $datavalue[$i]) ->get()->getResultArray(); $piddata[$i] = $linkagelist[0]['id']; } $arr = array_merge([0],$piddata); $linkagevalue = \Phpcmf\Service::M()->db->table('linkage_data_'.$linkage[0]['id']) ->select('id') ->where('pids',implode(',', $arr)) ->where('name', $datavalue[count($datavalue)-1]) ->get()->getResultArray(); $linkid[$key] = $linkagevalue[0]['id']; }else{ $linkid = []; foreach ($linkdata as $key => $lk){ $linkagelist = \Phpcmf\Service::M()->db->table('linkage_data_' . $linkage[0]['id']) ->select('id') ->where('name', $lk) ->get()->getResultArray(); $linkid[$key] = $linkagelist[0]['id']; } } } $data[$t['fieldname']] = json_encode($linkid); } } if ($t['fieldtype'] == 'Radio' || $t['fieldtype'] == 'Select'){ $fieldvalue = dr_field_options($t['id']); foreach ($fieldvalue as $key => $fv) { if ($fv === $data[$name]) { $data[$name] = $key; } } } if ($t['fieldtype'] == 'Checkbox'){ if (!empty($data[$name])){ $fieldvalue = dr_field_options($t['id']); $datavalue = explode('|',$data[$name]); $colnum = 0; foreach ($datavalue as $dv){ foreach ($fieldvalue as $key => $fv) { if ($fv === $dv) { $fielddata[$colnum] = $key; $colnum = $colnum+1; } } } } $data[$name] = json_encode($fielddata); } }catch (\Exception $e){ exit('附件下載失敗'); } if ($name && isset($data[$name])) { $add[$t['ismain']][$name] = $data[$name]; } } $value = $add[0]['content']; if (preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|png))\\2/i", $value, $imgs)) { foreach ($imgs[3] as $img) { if (strpos($img, '/api/ueditor/') !== false || strpos($img, '/api/umeditor/') !== false) { continue; } // 下載圖片 if (strpos($img, 'http') === 0) { // 正常下載 // 判斷域名白名單 $arr = parse_url($img); $domain = $arr['host']; if ($domain) { $sites = WRITEPATH.'config/domain_site.php'; if (isset($sites[$domain])) { // 過濾站點(diǎn)域名 } elseif (strpos(SYS_UPLOAD_URL, $domain) !== false) { // 過濾附件白名單 } else { $zj = 0; $remote = \Phpcmf\Service::C()->get_cache('attachment'); if ($remote) { foreach ($remote as $t) { if (strpos($t['url'], $domain) !== false) { $zj = 1; break; } } } if ($zj == 0) { // 可以下載文件 // 同步模式 // 下載遠(yuǎn)程文件 $rt1 = \Phpcmf\Service::L('upload')->down_file([ 'url' => $img, 'attachment' => \Phpcmf\Service::M('Attachment')->get_attach_info(intval($field['content']['setting']['option']['attachment'])), ]); if ($rt1['code']) { $att = \Phpcmf\Service::M('Attachment')->save_data($rt1['data'], 'ueditor_down_img'); if ($att['code']) { // 歸檔成功 $value = str_replace($img, $rt1['data']['url'], $value); $img = $att['code']; } } } } } } // 縮略圖 if ($img && !$add[1]['thumb']) { $add[1]['thumb'] = $img; } } } if ($imgs && !$add[1]['thumb']) { $add[1]['thumb'] = $imgs[3][0]; } $add[0]['content'] = $value; if ($this->share['random'] == 1){ $random_user = $this->add_member(); $add[1]['uid'] = $random_user['data']['uid']; $add[1]['author'] =$random_user['data']['username']; }else{ $uid = $this->u_id; $add[1]['uid'] = $uid; $member = dr_member_info($uid); $add[1]['author'] = $member['username']; } $add[1]['catid'] = $data['catid']; $add[1]['status'] = 9; if ( empty($data['hits']) || $data['hits'] < 0 ){ if (empty($hits_min) && $hits_max == 1){ $add[1]['hits'] = 1; }else{ $add[1]['hits'] = random_int($hits_min,$hits_max); } }else{ $add[1]['hits'] = $data['hits']; } $add[1]['inputip'] = \Phpcmf\Service::L('input')->ip_address();; $add[1]['inputtime'] = $add[1]['updatetime'] = SYS_TIME; $this->_init([ 'table' => $this->content_model->mytable, 'field' => $field, 'order_by' => 'id desc', ]); //驗(yàn)證標(biāo)題重復(fù) if ($isupdate == 1){ $model_data = \Phpcmf\Service::M()->table_site($this->model)->where('title', $add[1]['title'])->getAll(); $data = $this->_Data($model_data[0]['id']); if ($this->content_model->save_content($model_data[0]['id'],$add,$data)) {; exit('更新成功'); } else { exit('入庫失敗'); } }elseif ($this->content_model->table(SITE_ID.'_'.MOD_DIR)->where('title', $add[1]['title'])->counts()) { echo '重復(fù)';exit; }else{ if ($draft == 1){ $add[1]['id'] = 0; $add[1]['content'] = $add[0]['content']; $array['content'] = json_encode($add[1]); $array['cid'] = 0; $array['uid'] = 1; $array['catid'] = $add[1]['catid']; $array['inputtime'] = SYS_TIME; $rel = \Phpcmf\Service::M()->table(SITE_ID.'_'.$this->model.'_draft')->insert($array); if ($rel) { exit('成功'); }else{ exit('入庫失敗'); } } if ($this->content_model->save_content(0,$add,0)) { $locomotive['catid'] = $catename[0]['id']; $locomotive['name'] = $catename[0]['name']; $locomotive['dirname'] = $catename[0]['dirname']; $locomotive['site'] = SITE_ID; $locomotive['title'] = $add[1]['title']; $locomotive['module'] = 'share'; \Phpcmf\Service::M()->table('locomotive')->insert($locomotive); exit('成功'); } else { exit('入庫失敗'); } } } public function getAloneCate(){ $auth = $this->alone['code']; $this->input = Service::L('input'); if ($this->input->get('auth') != $auth) exit('權(quán)限認(rèn)證失敗'); $module = \Phpcmf\Service::M()->db->table('module')->select('dirname')->get()->getResultArray(); foreach ($module as $mod) { $aloneCate = \Phpcmf\Service::M()->db->table(SITE_ID.'_'.$mod['dirname'].'_category')->select('id,name,child')->get()->getResultArray(); foreach ($aloneCate as $num => $alone) { $aloneCate[$num]['id'] = $mod['dirname'].'-'.$alone['id']; } $Category[] = $aloneCate; } $info = $Category; $array_cate = []; foreach ($info as $key => $value) { foreach ($value as $k => $v) { array_push($array_cate, $v); } } foreach ($array_cate as $ac) { if ($ac['child'] == 0) { echo '<h1>'.$ac['name'].'<=>'.$ac['id'].'</h1>'.PHP_EOL; } } } /** * 采集入庫 */ public function addAlone() { $auth = $this->alone['code']; $draft = $this->alone['draft']; $isupdate = $this->alone['contentupdate']; $hits_min = $this->alone['hits_min']; $hits_max = $this->alone['hits_max']; $this->input = Service::L('input'); if ($this->input->get('auth') != $auth) exit('權(quán)限認(rèn)證失敗'); if ($this->alone['release'] != 1) exit('已關(guān)閉發(fā)布狀態(tài)'); $add = array(); $data = $this->input->request('data'); $cateinfo = explode('-', $data['catid']); $data['catid'] = $cateinfo[1]; $catename = \Phpcmf\Service::M()->db->table(SITE_ID.'_'.$cateinfo[0].'_category') ->where('id', (int)$data['catid']) ->get()->getResultArray(); $this->model = $cateinfo[0]; $this->content_model = \Phpcmf\Service::M('Content', $this->model); $this->_module_init($this->model, SITE_ID, $this->module[$cateinfo[0]]); if (!$data['catid']) exit('欄目不存在'); if (!$data['catid'] || !$data['title']) exit('數(shù)據(jù)不完整'); // 按字段來歸類 $field = $this->get_cache('module-'.SITE_ID.'-'.$this->model, 'field'); foreach ($field as $t) { $name = $t['fieldname']; try{ //單文件 if ($t['fieldtype'] == "File"){ if ($data[$name]){ $data[$name] = dr_get_file($this->down_file(trim($data[$name]))); } } //多文件 if ($t['fieldtype'] == "Files"){ if (stripos($data[$name],"|") !== false){ $data[$name] .= "|"; } $url_arr = explode("|",$data[$name]); unset($data[$name]); foreach ($url_arr as $k => $v){ $url = trim($v); if (!empty($url)){ $data[$name]['title'][$k] = $url; $data[$name]['file'][$k] = $this->down_file($url); $data[$name]['description'][$k] = ""; } } $data[$name] = json_encode($data[$name]); } if ($t['fieldtype'] == "Image"){ if (stripos($data[$name],"|") !== false){ $data[$name] .= "|"; } $url_arr = explode("|",$data[$name]); unset($data[$name]); foreach ($url_arr as $k => $v){ $url = trim($v); if (!empty($url)){ $data[$name][$k] = $this->down_file($url); } } $data[$name] = json_encode($data[$name]); } if ($t['fieldtype'] == "Images"){ if (stripos($data[$name],"|") !== false){ $data[$name] .= "|"; } $url_arr = explode("|",$data[$name]); unset($data[$name]); foreach ($url_arr as $k => $v){ $url = trim($v); if (!empty($url)){ $data[$name][$k] = $this->down_file($url); } } $data[$name] = json_encode($data[$name]); } if ($t['fieldtype'] == 'Date'){ if ($data[$t['fieldname']]){ $data[$t['fieldname']] = strtotime($data[$t['fieldname']]); } } if ($t['fieldtype'] == 'Time'){ $data[$name] = $data[$name]; } if ($t['fieldtype'] == 'Linkage'){ if ($data[$t['fieldname']]) { $datavalue = explode('>', $data[$t['fieldname']]); $linkage = \Phpcmf\Service::M()->db->table('linkage') ->select('id') ->where('code', $t['setting']['option']['linkage']) ->get()->getResultArray(); if (count($datavalue) > 1){ for($i = 0; $i < count($datavalue)-1; $i++){ $linkagelist = \Phpcmf\Service::M()->db->table('linkage_data_'.$linkage[0]['id']) ->select('id') ->where('name', $datavalue[$i]) ->get()->getResultArray(); $piddata[$i] = $linkagelist[0]['id']; } $arr = array_merge([0],$piddata); $linkagevalue = \Phpcmf\Service::M()->db->table('linkage_data_'.$linkage[0]['id']) ->select('id') ->where('pids',implode(',', $arr)) ->where('name', $datavalue[count($datavalue)-1]) ->get()->getResultArray(); $data[$t['fieldname']] = $linkagevalue[0]['id']; }else{ $linkagelist1 = \Phpcmf\Service::M()->db->table('linkage_data_' . $linkage[0]['id']) ->select('id') ->where('name', $data[$name]) ->get()->getResultArray(); $data[$t['fieldname']] = $linkagelist1[0]['id']; } } } if ($t['fieldtype'] == 'Linkages'){ if ($data[$t['fieldname']]) { $linkdata = explode('|', $data[$t['fieldname']]); $linkage = \Phpcmf\Service::M()->db->table('linkage') ->select('id') ->where('code', $t['setting']['option']['linkage']) ->get()->getResultArray(); $linkid = []; foreach ($linkdata as $key => $ld){ $datavalue = explode('>', $ld); if (count($datavalue) > 1){ for($i = 0; $i < count($datavalue)-1; $i++){ $linkagelist = \Phpcmf\Service::M()->db->table('linkage_data_'.$linkage[0]['id']) ->select('id') ->where('name', $datavalue[$i]) ->get()->getResultArray(); $piddata[$i] = $linkagelist[0]['id']; } $arr = array_merge([0],$piddata); $linkagevalue = \Phpcmf\Service::M()->db->table('linkage_data_'.$linkage[0]['id']) ->select('id') ->where('pids',implode(',', $arr)) ->where('name', $datavalue[count($datavalue)-1]) ->get()->getResultArray(); $linkid[$key] = $linkagevalue[0]['id']; }else{ $linkid = []; foreach ($linkdata as $key => $lk){ $linkagelist = \Phpcmf\Service::M()->db->table('linkage_data_' . $linkage[0]['id']) ->select('id') ->where('name', $lk) ->get()->getResultArray(); $linkid[$key] = $linkagelist[0]['id']; } } } $data[$t['fieldname']] = json_encode($linkid); } } if ($t['fieldtype'] == 'Radio' || $t['fieldtype'] == 'Select'){ $fieldvalue = dr_field_options($t['id']); foreach ($fieldvalue as $key => $fv) { if ($fv === $data[$name]) { $data[$name] = $key; } } } if ($t['fieldtype'] == 'Checkbox'){ if (!empty($data[$name])){ $fieldvalue = dr_field_options($t['id']); $datavalue = explode('|',$data[$name]); $colnum = 0; foreach ($datavalue as $dv){ foreach ($fieldvalue as $key => $fv) { if ($fv === $dv) { $fielddata[$colnum] = $key; $colnum = $colnum+1; } } } } $data[$name] = json_encode($fielddata); } }catch (\Exception $e){ exit('附件下載失敗'); } if ($name && isset($data[$name])) { $add[$t['ismain']][$name] = $data[$name]; } } $value = $add[0]['content']; if (preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|png))\\2/i", $value, $imgs)) { foreach ($imgs[3] as $img) { if (strpos($img, '/api/ueditor/') !== false || strpos($img, '/api/umeditor/') !== false) { continue; } // 下載圖片 if (strpos($img, 'http') === 0) { // 正常下載 // 判斷域名白名單 $arr = parse_url($img); $domain = $arr['host']; if ($domain) { $sites = WRITEPATH.'config/domain_site.php'; if (isset($sites[$domain])) { // 過濾站點(diǎn)域名 } elseif (strpos(SYS_UPLOAD_URL, $domain) !== false) { // 過濾附件白名單 } else { $zj = 0; $remote = \Phpcmf\Service::C()->get_cache('attachment'); if ($remote) { foreach ($remote as $t) { if (strpos($t['url'], $domain) !== false) { $zj = 1; break; } } } if ($zj == 0) { // 可以下載文件 // 同步模式 // 下載遠(yuǎn)程文件 $rt1 = \Phpcmf\Service::L('upload')->down_file([ 'url' => $img, 'attachment' => \Phpcmf\Service::M('Attachment')->get_attach_info(intval($field['content']['setting']['option']['attachment'])), ]); if ($rt1['code']) { $att = \Phpcmf\Service::M('Attachment')->save_data($rt1['data'], 'ueditor_down_img'); if ($att['code']) { // 歸檔成功 $value = str_replace($img, $rt1['data']['url'], $value); $img = $att['code']; } } } } } } // 縮略圖 if ($img && !$add[1]['thumb']) { $add[1]['thumb'] = $img; } } } if ($imgs && !$add[1]['thumb']) { $add[1]['thumb'] = $imgs[3][0]; } $add[0]['content'] = $value; if ($this->alone['random'] == 1){ $random_user = $this->add_member(); $add[1]['uid'] = $random_user['data']['uid']; $add[1]['author'] =$random_user['data']['username']; }else{ $uid = $this->u_id; $add[1]['uid'] = $uid; $member = dr_member_info($uid); $add[1]['author'] = $member['username']; } $add[1]['catid'] = $data['catid']; $add[1]['status'] = 9; if ( empty($data['hits']) || $data['hits'] < 0 ){ if (empty($hits_min) && $hits_max == 1){ $add[1]['hits'] = 1; }else{ $add[1]['hits'] = random_int($hits_min,$hits_max); } }else{ $add[1]['hits'] = $data['hits']; } if (empty($data['description'])) { $add[1]['description'] = ' '; }else{ $add[1]['description'] = $data['description']; } if ($this->model == 'bbs'){ $add[1]['color'] = ' '; $add[1]['isflag'] = 0; } $add[1]['displayorder'] = 0; $add[1]['inputip'] = \Phpcmf\Service::L('input')->ip_address();; $add[1]['inputtime'] = $add[1]['updatetime'] = SYS_TIME; $this->_init([ 'table' => $this->content_model->mytable, 'field' => $field, 'order_by' => 'id desc', ]); //驗(yàn)證標(biāo)題重復(fù) if ($isupdate == 1){ $model_data = \Phpcmf\Service::M()->table_site($this->model)->where('title', $add[1]['title'])->getAll(); $data = $this->_Data($model_data[0]['id']); if ($this->content_model->save_content($model_data[0]['id'],$add,$data)) {; exit('更新成功'); } else { exit('入庫失敗'); } }elseif ($this->content_model->table(SITE_ID.'_'.MOD_DIR)->where('title', $add[1]['title'])->counts()) { echo '重復(fù)';exit; }else{ if ($draft == 1){ $add[1]['id'] = 0; $add[1]['content'] = $add[0]['content']; $array['content'] = json_encode($add[1]); $array['cid'] = 0; $array['uid'] = 1; $array['catid'] = $add[1]['catid']; $array['inputtime'] = SYS_TIME; $rel = \Phpcmf\Service::M()->table(SITE_ID.'_'.$this->model.'_draft')->insert($array); if ($rel) { exit('成功'); }else{ exit('入庫失敗'); } } if ($this->content_model->save_content(0,$add,0)) { $locomotive['catid'] = $catename[0]['id']; $locomotive['name'] = $catename[0]['name']; $locomotive['dirname'] = $catename[0]['dirname']; $locomotive['site'] = SITE_ID; $locomotive['title'] = $add[1]['title']; $locomotive['module'] = 'share'; \Phpcmf\Service::M()->table('locomotive')->insert($locomotive); exit('成功'); } else { exit('入庫失敗'); } } } ?>回復(fù)@官方插件技術(shù)-何老師 現(xiàn)在問題應(yīng)該是,新建的子站,無法發(fā)現(xiàn)主站的這個(gè)插件,因?yàn)樽诱臼仟?dú)立創(chuàng)建站點(diǎn)目錄,目錄里根本沒有這個(gè)插件的安裝