} if ($_REQUEST['vsize'] > 1) { $jieqiTpl->assign('vsize', $_REQUEST['vsize']); } else { $jieqiTpl->assign('vsize', 0); } $packrows = array(); if ($_REQUEST['vsize'] <= 1) { $packxml = jieqi_uploadpath($jieqiConfigs['article']['umddir'], 'article') . jieqi_getsubdir($_REQUEST['id']) . '/' . $_REQUEST['id'] . '/' . $_REQUEST['id'] . '.xml'; } else { $packxml = jieqi_uploadpath($jieqiConfigs['article']['umddir'], 'article') . jieqi_getsubdir($_REQUEST['id']) . '/' . $_REQUEST['id'] . '/' . $_REQUEST['id'] . '_' . $_REQUEST['vsize'] . '.xml'; } //文件不存在或者过期自动生成 if (!is_file($packxml) || filemtime($packxml) + 600 < $lastupdate) { include_once JIEQI_ROOT_PATH . '/modules/article/include/repack.php'; article_repack($_REQUEST['id'], array('makeumd' => 1), 1); } if (is_file($packxml)) { include_once JIEQI_ROOT_PATH . '/lib/xml/xmlarray.php'; $xmlarray = new XMLArray(); if ($_REQUEST['vsize'] <= 1) { $packrows[1] = $xmlarray->xml2array(jieqi_readfile($packxml)); } else { $packrows = $xmlarray->xml2array(jieqi_readfile($packxml)); } } $jieqiTpl->assign_by_ref('packrows', $packrows); $jieqiTset['jieqi_contents_template'] = $jieqiModules['article']['path'] . '/templates/packumd.html'; break; case 'txtchapter': default:
$criteria->setStart($startlimit); $criteria->setLimit(1); $article_handler->queryObjects($criteria); $article = $article_handler->getObject(); if (is_object($article)) { $articlename = $article->getVar('articlename'); include_once $jieqiModules['article']['path'] . '/include/repack.php'; $ptypes = array(); foreach ($_REQUEST['flagary'] as $v) { $ptypes[$v] = 1; } echo ' '; echo sprintf($jieqiLang['article']['batch_repack_doing'], $articlename, date('Y-m-d H:i:s', $starttime), date('Y-m-d H:i:s', $stoptime), date('Y-m-d H:i:s', $article->getVar('lastupdate')), $article->getVar('articleid')); ob_flush(); flush(); article_repack($article->getVar('articleid'), $ptypes, 1); $showinfo = $jieqiLang['article']['repack_success_next']; } else { jieqi_msgwin(LANG_DO_SUCCESS, sprintf($jieqiLang['article']['batch_repack_success'], $article_static_url . '/admin/batchrepack.php')); exit; } $startlimit++; $url = $article_static_url . '/admin/batchrepack.php?action=packwithtime&starttime=' . $starttime . '&stoptime=' . $stoptime . '&startlimit=' . $startlimit; foreach ($_REQUEST['packflag'] as $k => $v) { $url .= '&packflag[' . $k . ']=' . $v; } echo sprintf($jieqiLang['article']['repack_next_html'], JIEQI_CHAR_SET, $showinfo, $url, $url); } else { include_once JIEQI_ROOT_PATH . '/admin/header.php'; $jieqiTpl->assign('article_static_url', $article_static_url); $jieqiTpl->assign('article_dynamic_url', $article_dynamic_url);
$canedit = jieqi_checkpower($jieqiPower['article']['manageallarticle'], $jieqiUsersStatus, $jieqiUsersGroup, true); if (!$canedit && !empty($_SESSION['jieqiUserId'])) { //除了斑竹,作者、发表者和代理人可以修改文章 $tmpvar = $_SESSION['jieqiUserId']; if ($tmpvar > 0 && ($article->getVar('authorid') == $tmpvar || $article->getVar('posterid') == $tmpvar || $article->getVar('agentid') == $tmpvar)) { $canedit = true; } } if (!$canedit) { jieqi_printfail($jieqiLang['article']['noper_manage_article']); } @set_time_limit(3600); @session_write_close(); if (!is_array($_REQUEST['packflag']) || count($_REQUEST['packflag']) < 1) { jieqi_printfail($jieqiLang['article']['need_repack_option']); } else { jieqi_getconfigs(JIEQI_MODULE_NAME, 'configs'); $article_static_url = empty($jieqiConfigs['article']['staticurl']) ? $jieqiModules['article']['url'] : $jieqiConfigs['article']['staticurl']; $article_dynamic_url = empty($jieqiConfigs['article']['dynamicurl']) ? $jieqiModules['article']['url'] : $jieqiConfigs['article']['dynamicurl']; include_once $jieqiModules['article']['path'] . '/include/repack.php'; $ptypes = array(); foreach ($_REQUEST['packflag'] as $v) { $ptypes[$v] = 1; } echo ' '; echo $jieqiLang['article']['wait_to_execute']; ob_flush(); flush(); $ret = article_repack($_REQUEST['id'], $ptypes); jieqi_jumppage($article_static_url . '/articlemanage.php?id=' . $_REQUEST['id'], LANG_DO_SUCCESS, $jieqiLang['article']['article_repack_success']); }
} */ echo $jieqiLang['article']['chapter_collect_success']; ob_flush(); flush(); //生成html和zip和全文阅读 $jieqiConfigs['article']['makehtml'] = $old_makehtml; if ($old_makehtml == 1) { echo $jieqiLang['article']['collect_create_readfile']; ob_flush(); flush(); include_once $GLOBALS['jieqiModules']['article']['path'] . '/include/repack.php'; article_repack($_REQUEST['toid'], array('makeopf' => 1, 'makehtml' => $old_makehtml, 'makezip' => $jieqiConfigs['article']['makezip'], 'makefull' => $jieqiConfigs['article']['makefull'], 'maketxtfull' => $jieqiConfigs['article']['maketxtfull'], 'makeumd' => $jieqiConfigs['article']['makeumd'], 'makejar' => $jieqiConfigs['article']['makejar']), 1); } else { include_once $GLOBALS['jieqiModules']['article']['path'] . '/include/repack.php'; article_repack($_REQUEST['toid'], array('makeopf' => 1, 'makehtml' => 0, 'makezip' => 0, 'makefull' => 0, 'maketxtfull' => 0, 'makeumd' => 0, 'makejar' => 0), 1); } //更新静态页 if ($jieqiConfigs['article']['fakestatic'] > 0) { include_once $GLOBALS['jieqiModules']['article']['path'] . '/include/funstatic.php'; article_update_static('articleedit', $_REQUEST['toid'], 0); } //采集完成 $retflag = 1; } else { //没有需要更新的 if ($retflag == 0) { $retflag = 2; } } }
function jieqi_article_delchapter($aid, $criteria, $usescore = false) { global $jieqiModules; global $article_handler; global $chapter_handler; global $jieqiArticleuplog; global $jieqiConfigs; global $jieqi_file_postfix; if (!is_object($criteria)) { return false; } $criteria->add(new Criteria('articleid', intval($aid))); $article = $article_handler->get($aid); if (!is_object($article)) { return false; } //查询符合条件章节 $posterary = array(); $chapter_handler->queryObjects($criteria); $chapterary = array(); $k = 0; $cids = ''; $lastchapterid = intval($article->getVar('lastchapterid')); $lastvolumeid = intval($article->getVar('lastvolumeid')); $uplastchapter = false; //是否更新最新章节 $uplastvolume = false; //是否更新最新章节 $subsize = 0; while ($chapterobj = $chapter_handler->getObject()) { $chapterary[$k]['id'] = intval($chapterobj->getVar('chapterid')); if ($chapterary[$k]['id'] == $lastchapterid) { $uplastchapter = true; } if ($chapterary[$k]['id'] == $lastvolumeid) { $uplastvolume = true; } if ($cids != '') { $cids .= ','; } $cids .= $chapterary[$k]['id']; $chapterary[$k]['size'] = $chapterobj->getVar('size'); $subsize += intval($chapterary[$k]['size']); $chapterary[$k]['attach'] = $chapterobj->getVar('attachment', 'n') == '' ? 0 : 1; $k++; if (!empty($jieqiConfigs['article']['scorechapter'])) { $posterid = intval($chapterobj->getVar('posterid')); if (isset($posterary[$posterid])) { $posterary[$posterid] += $jieqiConfigs['article']['scorechapter']; } else { $posterary[$posterid] = $jieqiConfigs['article']['scorechapter']; } } } //删除章节 $chapter_handler->delete($criteria); //删除附件数据库 if ($cids != '') { $criteria1 = new CriteriaCompo(); $criteria1->add(new Criteria('chapterid', '(' . $cids . ')', 'IN')); include_once $jieqiModules['article']['path'] . '/class/articleattachs.php'; $attachs_handler =& JieqiArticleattachsHandler::getInstance('JieqiArticleattachsHandler'); $attachs_handler->delete($criteria1); } //删除文本文件、附件文件、html $txtdir = jieqi_uploadpath($jieqiConfigs['article']['txtdir'], 'article') . jieqi_getsubdir($aid) . '/' . $aid; $htmldir = jieqi_uploadpath($jieqiConfigs['article']['htmldir'], 'article') . jieqi_getsubdir($aid) . '/' . $aid; $attachdir = jieqi_uploadpath($jieqiConfigs['article']['attachdir'], 'article') . jieqi_getsubdir($aid) . '/' . $aid; foreach ($chapterary as $c) { if (is_file($txtdir . '/' . $c['id'] . $jieqi_file_postfix['txt'])) { jieqi_delfile($txtdir . '/' . $c['id'] . $jieqi_file_postfix['txt']); } if (is_file($htmldir . '/' . $c['id'] . $jieqiConfigs['article']['htmlfile'])) { jieqi_delfile($htmldir . '/' . $c['id'] . $jieqiConfigs['article']['htmlfile']); } if (is_dir($attachdir . '/' . $c['id'])) { jieqi_delfolder($attachdir . '/' . $c['id']); } } //重新生成网页和打包 include_once $jieqiModules['article']['path'] . '/include/repack.php'; $ptypes = array('makeopf' => 1, 'makehtml' => $jieqiConfigs['article']['makehtml'], 'makezip' => $jieqiConfigs['article']['makezip'], 'makefull' => $jieqiConfigs['article']['makefull'], 'maketxtfull' => $jieqiConfigs['article']['maketxtfull'], 'makeumd' => $jieqiConfigs['article']['makeumd'], 'makejar' => $jieqiConfigs['article']['makejar']); article_repack($aid, $ptypes, 0); //减少文章和章节积分 if ($usescore) { include_once JIEQI_ROOT_PATH . '/class/users.php'; $users_handler =& JieqiUsersHandler::getInstance('JieqiUsersHandler'); if (!empty($jieqiConfigs['article']['scorearticle'])) { $posterid = intval($article->getVar('posterid')); if (isset($posterary[$posterid])) { $posterary[$posterid] += $jieqiConfigs['article']['scorearticle']; } else { $posterary[$posterid] = $jieqiConfigs['article']['scorearticle']; } } foreach ($posterary as $pid => $pscore) { $users_handler->changeScore($pid, $pscore, false); } } //更新文章信息 $newsize = $article->getVar('size') - $subsize; if ($newsize < 0) { $newsize = 0; } $article->setVar('size', $newsize); if ($uplastchapter) { $criteria = new CriteriaCompo(new Criteria('articleid', $article->getVar('articleid'))); $criteria->add(new Criteria('chaptertype', 0, '=')); $criteria->setSort('chapterorder'); $criteria->setOrder('DESC'); $criteria->setStart(0); $criteria->setLimit(1); $chapter_handler->queryObjects($criteria); $tmpchapter = $chapter_handler->getObject(); if ($tmpchapter) { $article->setVar('lastchapter', $tmpchapter->getVar('chaptername', 'n')); $article->setVar('lastchapterid', $tmpchapter->getVar('chapterid', 'n')); unset($tmpchapter); } else { $article->setVar('lastchapter', ''); $article->setVar('lastchapterid', 0); } } if ($uplastvolume) { $criteria = new CriteriaCompo(new Criteria('articleid', $article->getVar('articleid'))); $criteria->add(new Criteria('chaptertype', 1, '=')); $criteria->setSort('chapterorder'); $criteria->setOrder('DESC'); $criteria->setStart(0); $criteria->setLimit(1); $chapter_handler->queryObjects($criteria); $tmpchapter = $chapter_handler->getObject(); if ($tmpchapter) { $article->setVar('lastvolume', $tmpchapter->getVar('chaptername', 'n')); $article->setVar('lastvolumeid', $tmpchapter->getVar('chapterid', 'n')); unset($tmpchapter); } else { $article->setVar('lastvolume', ''); $article->setVar('lastvolumeid', 0); } } $article_handler->insert($article); //更新最新文章 $jieqiArticleuplog['articleuptime'] = JIEQI_NOW_TIME; $jieqiArticleuplog['chapteruptime'] = JIEQI_NOW_TIME; jieqi_setcachevars('articleuplog', 'jieqiArticleuplog', $jieqiArticleuplog, 'article'); return $article; }