} //开始生成 $package->isload = true; //生成opf if (in_array('makeopf', $_REQUEST['packflag'])) { $package->createOPF(); } if (in_array('makehtml', $_REQUEST['packflag'])) { $chaptercount = count($package->chapters); for ($i = 1; $i <= $chaptercount; $i++) { if ($package->chapters[$i - 1]['content-type'] == 'chapter') { $package->makeHtml($i, false, false, true); } } //生成html目录 $package->makeIndex(); } //生成txt全文 if (in_array('maketxtfull', $_REQUEST['packflag'])) { $package->maketxtfull(); } //生成全文阅读 if (in_array('makefull', $_REQUEST['packflag'])) { $package->makefulltext(); } //生成zip if (in_array('makezip', $_REQUEST['packflag'])) { $package->makezip(); } //生成umd if (in_array('makeumd', $_REQUEST['packflag'])) {
function article_repack($id, $params = array(), $syn = 0) { global $jieqiConfigs; global $jieqiModules; global $jieqi_file_postfix; if (!$syn) { $article_static_url = empty($jieqiConfigs['article']['staticurl']) ? $jieqiModules['article']['url'] : $jieqiConfigs['article']['staticurl']; $url = $article_static_url . '/makepack.php?key=' . urlencode(md5(JIEQI_DB_USER . JIEQI_DB_PASS . JIEQI_DB_NAME)) . '&id=' . intval($id); $url = trim($url); if (strtolower(substr($url, 0, 7)) != 'http://') { $url = 'http://' . $_SERVER['HTTP_HOST'] . $url; } foreach ($params as $k => $v) { if ($v) { $url .= '&packflag[]=' . urlencode($k); } } return jieqi_socket_url($url); } else { $article_handler =& JieqiArticleHandler::getInstance('JieqiArticleHandler'); $article = $article_handler->get($id); if (!is_object($article)) { return false; } else { $package = new JieqiPackage($id); $package->initPackage(array('id' => $article->getVar('articleid', 'n'), 'title' => $article->getVar('articlename', 'n'), 'creatorid' => $article->getVar('authorid', 'n'), 'creator' => $article->getVar('author', 'n'), 'subject' => $article->getVar('keywords', 'n'), 'description' => $article->getVar('intro', 'n'), 'publisher' => JIEQI_SITE_NAME, 'contributorid' => $article->getVar('posterid', 'n'), 'contributor' => $article->getVar('poster', 'n'), 'sortid' => $article->getVar('sortid', 'n'), 'typeid' => $article->getVar('typeid', 'n'), 'articletype' => $article->getVar('articletype', 'n'), 'permission' => $article->getVar('permission', 'n'), 'firstflag' => $article->getVar('firstflag', 'n'), 'fullflag' => $article->getVar('fullflag', 'n'), 'imgflag' => $article->getVar('imgflag', 'n'), 'power' => $article->getVar('power', 'n'), 'display' => $article->getVar('display', 'n')), false); $chapter_handler =& JieqiChapterHandler::getInstance('JieqiChapterHandler'); $criteria = new CriteriaCompo(new Criteria('articleid', $id, '=')); $criteria->setSort('chapterorder ASC, chapterid'); $criteria->setOrder('ASC'); $res = $chapter_handler->queryObjects($criteria); $i = 0; $articlesize = 0; while ($chapter = $chapter_handler->getObject($res)) { if ($chapter->getVar('chaptertype', 'n') == 1) { $contenttype = 'volume'; } else { $contenttype = 'chapter'; } $package->chapters[$i] = array('id' => $chapter->getVar('chaptername', 'n'), 'href' => $chapter->getVar('chapterid', 'n') . $jieqi_file_postfix['txt'], 'media-type' => 'text/html', 'content-type' => $contenttype); $i++; if ($chapter->getVar('chaptertype', 'n') == 0) { $articlesize = $articlesize + intval($chapter->getVar('size', 'n')); } if ($chapter->getVar('chapterorder', 'n') != $i) { $chapter->setVar('chapterorder', $i); $chapter_handler->insert($chapter); } } //检查文章信息和统计的是否对应 $changeflag = false; if ($article->getVar('chapters', 'n') != $i) { $article->setVar('chapters', $i); $changeflag = true; } if ($article->getVar('size', 'n') != $articlesize) { $article->setVar('size', $articlesize); $changeflag = true; } if ($changeflag) { $article_handler->insert($article); } //开始生成 $package->isload = true; //生成opf if ($params['makeopf']) { $package->createOPF(); } if ($params['makehtml']) { $chaptercount = count($package->chapters); for ($i = 1; $i <= $chaptercount; $i++) { if ($package->chapters[$i - 1]['content-type'] == 'chapter') { $package->makeHtml($i, false, false, true); } } //生成html目录 $package->makeIndex(); } //生成zip if ($params['makezip']) { $package->makezip(); } //生成全文阅读 if ($params['makefull']) { $package->makefulltext(); } //生成umd if ($params['makeumd']) { $package->makeumd(); } //生成txt全文 if ($params['maketxtfull']) { $package->maketxtfull(); } //生成jar if ($params['makejar']) { $package->makejar(); } return true; } } }