function makestaticinfo($article_id) { global $jieqiConfigs; global $jieqiSort; global $jieqiTpl; global $jieqiBlocks; global $jieqi_file_postfix; global $jieqiOption; if (!is_object($jieqiTpl)) { $jieqiTpl =& JieqiTpl::getInstance(); } if (empty($article_id) || !is_numeric($article_id)) { return false; } $article_handler =& JieqiArticleHandler::getInstance('JieqiArticleHandler'); $article = $article_handler->get($article_id); if (!$article) { return false; } //包含区块参数(定制) jieqi_getconfigs(JIEQI_MODULE_NAME, 'sort'); jieqi_getconfigs(JIEQI_MODULE_NAME, 'configs'); $jieqi_pagetitle = $article->getVar('articlename'); if ($article->getVar('lastvolume') != '') { $jieqi_pagetitle .= '-' . $article->getVar('lastvolume'); } $jieqi_pagetitle .= '-' . $article->getVar('lastchapter') . '-' . JIEQI_SITE_NAME; $jieqiTpl->assign('jieqi_pagetitle', $jieqi_pagetitle); $article_static_url = empty($jieqiConfigs['article']['staticurl']) ? $GLOBALS['jieqiModules']['article']['url'] : $jieqiConfigs['article']['staticurl']; $article_dynamic_url = empty($jieqiConfigs['article']['dynamicurl']) ? $GLOBALS['jieqiModules']['article']['url'] : $jieqiConfigs['article']['dynamicurl']; $jieqiTpl->assign('article_static_url', $article_static_url); $jieqiTpl->assign('article_dynamic_url', $article_dynamic_url); $jieqiTpl->assign('articlename', $article->getVar('articlename')); $jieqiTpl->assign('postdate', date('Y-m-d', $article->getVar('postdate'))); $jieqiTpl->assign('lastupdate', date('Y-m-d', $article->getVar('lastupdate'))); if ($article->getVar('authorid') > 0) { $jieqiTpl->assign('author', '<a href="' . jieqi_geturl('system', 'user', $article->getVar('authorid')) . '" target="_blank">' . $article->getVar('author') . '</a>'); } else { $jieqiTpl->assign('author', $article->getVar('author')); } if ($article->getVar('agentid') > 0) { $jieqiTpl->assign('agent', '<a href="' . jieqi_geturl('system', 'user', $article->getVar('agentid')) . '" target="_blank">' . $article->getVar('agent') . '</a>'); } else { $jieqiTpl->assign('agent', $article->getVar('agent')); } $jieqiTpl->assign('sortid', $article->getVar('sortid')); $jieqiTpl->assign('sort', $jieqiSort['article'][$article->getVar('sortid')]['caption']); $jieqiTpl->assign('intro', $article->getVar('intro')); $jieqiTpl->assign('notice', $article->getVar('notice')); $imgflag = $article->getVar('imgflag'); //小图 if (($imgflag & 1) > 0) { $jieqiTpl->assign('hasimage', 1); $jieqiTpl->assign('url_simage', jieqi_uploadurl($jieqiConfigs['article']['imagedir'], $jieqiConfigs['article']['imageurl'], 'article', $article_static_url) . jieqi_getsubdir($article->getVar('articleid')) . '/' . $article->getVar('articleid') . '/' . $article->getVar('articleid') . 's' . $jieqiConfigs['article']['imagetype']); } else { $jieqiTpl->assign('hasimage', 0); $jieqiTpl->assign('url_simage', ''); } //大图 if (($imgflag & 2) > 0) { $jieqiTpl->assign('url_limage', jieqi_uploadurl($jieqiConfigs['article']['imagedir'], $jieqiConfigs['article']['imageurl'], 'article', $article_static_url) . jieqi_getsubdir($article->getVar('articleid')) . '/' . $article->getVar('articleid') . '/' . $article->getVar('articleid') . 'l' . $jieqiConfigs['article']['imagetype']); } elseif (($imgflag & 1) > 0) { $jieqiTpl->assign('url_limage', jieqi_uploadurl($jieqiConfigs['article']['imagedir'], $jieqiConfigs['article']['imageurl'], 'article', $article_static_url) . jieqi_getsubdir($article->getVar('articleid')) . '/' . $article->getVar('articleid') . '/' . $article->getVar('articleid') . 's' . $jieqiConfigs['article']['imagetype']); } else { $jieqiTpl->assign('url_limage', ''); } $lastchapter = $article->getVar('lastchapter'); if ($lastchapter != '') { if ($article->getVar('lastvolume') != '') { $lastchapter = $article->getVar('lastvolume') . ' ' . $lastchapter; } $jieqiTpl->assign('url_lastchapter', jieqi_geturl('article', 'chapter', $article->getVar('lastchapterid'), $article->getVar('articleid'))); } else { $jieqiTpl->assign('url_lastchapter', ''); } //显示多个最新章节 if (is_numeric($jieqiConfigs['article']['infochapternum']) && intval($jieqiConfigs['article']['infochapternum']) > 0) { $jieqiConfigs['article']['infochapternum'] = intval($jieqiConfigs['article']['infochapternum']); include_once $GLOBALS['jieqiModules']['article']['path'] . '/class/chapter.php'; $chapter_handler =& JieqiChapterHandler::getInstance('JieqiChapterHandler'); $criteria = new CriteriaCompo(new Criteria('articleid', $article->getVar('articleid'), '=')); $criteria->setSort('chapterorder'); $criteria->setOrder('DESC'); $criteria->setLimit($jieqiConfigs['article']['infochapternum'] + ceil($jieqiConfigs['article']['infochapternum'] / 4)); $chapter_handler->queryObjects($criteria); $chapterrows = array(); $k = 0; $volumename = $article->getVar('lastvolume'); while ($chapter = $chapter_handler->getObject()) { if ($chapter->getVar('chaptertype') == 1) { $volumename = $chapter->getVar('chaptername'); } else { $chapterrows[$k]['volumename'] = $volumename; $chapterrows[$k]['chaptername'] = $chapter->getVar('chaptername'); if ($chapterrows[$k]['volumename'] != '') { $chapterrows[$k]['chapter'] = $chapterrows[$k]['volumename'] . ' ' . $chapterrows[$k]['chaptername']; } else { $chapterrows[$k]['chapter'] = $chapterrows[$k]['chaptername']; } $chapterrows[$k]['chapterid'] = $chapter->getVar('chapterid'); $chapterrows[$k]['url_chapter'] = jieqi_geturl('article', 'chapter', $chapter->getVar('chapterid'), $article->getVar('articleid')); $k++; if ($k >= $jieqiConfigs['article']['infochapternum']) { break; } } } $jieqiTpl->assign_by_ref('chapterrows', $chapterrows); } $jieqiTpl->assign('lastchapter', $lastchapter); $jieqiTpl->assign('size', $article->getVar('size')); $jieqiTpl->assign('size_k', ceil($article->getVar('size') / 1024)); $jieqiTpl->assign('size_c', ceil($article->getVar('size') / 2)); $jieqiTpl->assign('dayvisit', $article->getVar('dayvisit')); $jieqiTpl->assign('weekvisit', $article->getVar('weekvisit')); $jieqiTpl->assign('monthvisit', $article->getVar('monthvisit')); $jieqiTpl->assign('allvisit', $article->getVar('allvisit')); $jieqiTpl->assign('dayvote', $article->getVar('dayvote')); $jieqiTpl->assign('weekvote', $article->getVar('weekvote')); $jieqiTpl->assign('monthvote', $article->getVar('monthvote')); $jieqiTpl->assign('allvote', $article->getVar('allvote')); $jieqiTpl->assign('goodnum', $article->getVar('goodnum')); $jieqiTpl->assign('badnum', $article->getVar('badnum')); jieqi_getconfigs('article', 'option', 'jieqiOption'); $tmpvar = $article->getVar('fullflag'); if (isset($jieqiOption['article']['fullflag']['items'][$tmpvar])) { $jieqiTpl->assign('fullflag', $jieqiOption['article']['fullflag']['items'][$tmpvar]); } else { $jieqiTpl->assign('fullflag', $jieqiOption['article']['fullflag']['items'][$jieqiOption['article']['fullflag']['default']]); } $tmpvar = $article->getVar('permission'); if (isset($jieqiOption['article']['permission']['items'][$tmpvar])) { $jieqiTpl->assign('permission', $jieqiOption['article']['permission']['items'][$tmpvar]); } else { $jieqiTpl->assign('permission', $jieqiOption['article']['permission']['items'][$jieqiOption['article']['permission']['default']]); } $tmpvar = $article->getVar('firstflag'); if (isset($jieqiOption['article']['firstflag']['items'][$tmpvar])) { $jieqiTpl->assign('firstflag', $jieqiOption['article']['firstflag']['items'][$tmpvar]); } else { $jieqiTpl->assign('firstflag', $jieqiOption['article']['firstflag']['items'][$jieqiOption['article']['firstflag']['default']]); } //管理 $jieqiTpl->assign('url_manage', $article_static_url . '/articlemanage.php?id=' . $article->getVar('articleid')); //举报 $tmpstr = sprintf($jieqiLang['article']['article_report_reason'], jieqi_geturl('article', 'article', $article->getVar('articleid'), 'info')); $jieqiTpl->assign('url_report', $article_dynamic_url . '/newmessage.php?tosys=1&title=' . urlencode(sprintf($jieqiLang['article']['article_report_title'], $article->getVar('articlename', 'n'))) . '&content=' . urlencode($tmpstr)); //采集 $setting = unserialize($article->getVar('setting', 'n')); $url_collect = $article_static_url . '/collect.php?toid=' . $article->getVar('articleid', 'n'); if (is_numeric($setting['fromarticle'])) { $url_collect .= '&fromid=' . $setting['fromarticle']; } if (is_numeric($setting['fromsite'])) { $url_collect .= '&siteid=' . $setting['fromsite']; } $jieqiTpl->assign('url_collect', $url_collect); //文章序号 $jieqiTpl->assign('articleid', $article->getVar('articleid')); //点击阅读,全文阅读 if ($article->getVar('chapters', 'n') > 0) { $jieqiTpl->assign('url_read', jieqi_geturl('article', 'article', $article->getVar('articleid'), 'index')); if ($jieqiConfigs['article']['makefull'] == 0 || JIEQI_CHAR_SET != JIEQI_SYSTEM_CHARSET) { $jieqiTpl->assign('url_fullpage', $article_static_url . '/reader.php?aid=' . $article->getVar('articleid')); } else { $jieqiTpl->assign('url_fullpage', jieqi_uploadurl($jieqiConfigs['article']['fulldir'], $jieqiConfigs['article']['fullurl'], 'article', $article_static_url) . jieqi_getsubdir($article->getVar('articleid')) . '/' . $article->getVar('articleid') . $jieqiConfigs['article']['htmlfile']); } } else { $jieqiTpl->assign('url_read', '#'); $jieqiTpl->assign('url_fullpage', '#'); } //放入书架 $jieqiTpl->assign('url_bookcase', $article_dynamic_url . '/addbookcase.php?bid=' . $article->getVar('articleid')); //推荐本书 $jieqiTpl->assign('url_uservote', $article_dynamic_url . '/uservote.php?id=' . $article->getVar('articleid')); //作家专栏 if ($article->getVar('authorid') > 0) { $jieqiTpl->assign('url_authorpage', $article_dynamic_url . '/authorpage.php?id=' . $article->getVar('authorid')); } else { $jieqiTpl->assign('url_authorpage', '#'); } //打包下载 if ($article->getVar('chapters', 'n') > 0) { if ($jieqiConfigs['article']['makehtml'] == 0) { $jieqiTpl->assign('url_download', '#'); } else { $jieqiTpl->assign('url_download', jieqi_uploadurl($jieqiConfigs['article']['zipdir'], $jieqiConfigs['article']['zipurl'], 'article', $article_static_url) . jieqi_getsubdir($article->getVar('articleid')) . '/' . $article->getVar('articleid') . $jieqi_file_postfix['zip']); } } else { $jieqiTpl->assign('url_download', '#'); } //电子书部分 $articletype = intval($article->getVar('articletype')); if (($articletype & 1) > 0) { $hasebook = 1; } else { $hasebook = 0; } if (($articletype & 2) > 0) { $hasobook = 1; } else { $hasobook = 0; } if (($articletype & 4) > 0) { $hastbook = 1; } else { $hastbook = 0; } if ($hasobook == 1) { include_once $GLOBALS['jieqiModules']['obook']['path'] . '/class/obook.php'; $obook_handler =& JieqiObookHandler::getInstance('JieqiObookHandler'); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('articleid', $article->getVar('articleid'), '=')); $obook_handler->queryObjects($criteria); $obook = $obook_handler->getObject(); if (is_object($obook) && $obook->getVar('display') == 0 && $obook->getVar('size') > 0) { $jieqiTpl->assign('obook_obookid', $obook->getVar('obookid')); $jieqiTpl->assign('obook_lastvolume', $obook->getVar('lastvolume')); $jieqiTpl->assign('obook_lastvolumeid', $obook->getVar('lastvolumeid')); $jieqiTpl->assign('obook_lastchapter', $obook->getVar('lastchapter')); $jieqiTpl->assign('obook_lastchapterid', $obook->getVar('lastchapterid')); $jieqiTpl->assign('obook_lastupdate', date(JIEQI_DATE_FORMAT, $obook->getVar('lastupdate'))); $jieqiTpl->assign('obook_size', $obook->getVar('size')); $jieqiTpl->assign('obook_publishid', $obook->getVar('publishid')); } else { $hasobook = 0; } } $jieqiTpl->assign('articletype', $articletype); $jieqiTpl->assign('hasebook', $hasebook); $jieqiTpl->assign('hasobook', $hasobook); $jieqiTpl->assign('hastbook', $hastbook); $jieqiTpl->assign('url_goodreview', $article_dynamic_url . '/review.php?aid=' . $article->getVar('articleid') . '&type=good'); $jieqiTpl->assign('url_allreview', $article_dynamic_url . '/review.php?aid=' . $article->getVar('articleid') . '&type=all'); $jieqiTpl->assign('url_review', $article_dynamic_url . '/review.php?aid=' . $article->getVar('articleid')); if (!empty($_SESSION['jieqiUserId'])) { $jieqiTpl->assign('enablepost', 1); } else { $jieqiTpl->assign('enablepost', 0); } $jieqiTpl->setCaching(0); $jieqiTpl->assign('jieqi_contents', $jieqiTpl->fetch($GLOBALS['jieqiModules']['article']['path'] . '/templates/staticinfo.html')); ob_start(); include JIEQI_ROOT_PATH . '/footer.php'; $pagecontent = ob_get_contents(); ob_end_clean(); if (!empty($jieqiConfigs['article']['fakeprefix'])) { $dirname = JIEQI_ROOT_PATH . '/' . $jieqiConfigs['article']['fakeprefix'] . 'info'; } else { $dirname = JIEQI_ROOT_PATH . '/files/article/info'; } if (!file_exists($dirname)) { jieqi_createdir($dirname); } $dirname = $dirname . jieqi_getsubdir($article->getVar('articleid', 'n')); if (!file_exists($dirname)) { jieqi_createdir($dirname); } $dirname .= '/' . $article->getVar('articleid', 'n') . $jieqiConfigs['article']['fakefile']; jieqi_writefile($dirname, $pagecontent); return true; }
@ini_set('memory_limit', '64M'); echo ' '; ob_flush(); flush(); jieqi_getconfigs(JIEQI_MODULE_NAME, 'configs'); include_once $GLOBALS['jieqiModules']['article']['path'] . '/class/article.php'; include_once $GLOBALS['jieqiModules']['article']['path'] . '/class/chapter.php'; include_once $GLOBALS['jieqiModules']['article']['path'] . '/class/package.php'; $article_handler =& JieqiArticleHandler::getInstance('JieqiArticleHandler'); $article = $article_handler->get($_REQUEST['id']); if (!is_object($article)) { exit; } else { $package = new JieqiPackage($_REQUEST['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', $_REQUEST['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) {
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; } } }