public function vxDrawStock($c) { if (!BABEL_FEATURE_NODE_STOCK) { return false; } else { if ($o = $c->load('babel_node_stock_' . $this->nod_id)) { if ($o == '') { return false; } else { echo $o; return true; } } else { $special = false; $fix = ''; if (preg_match('/^6([0-9]{5})$/', $this->nod_name) || $this->nod_name == 'sh000001') { $special = 'sh'; if ($this->nod_name == 'sh000001') { $this->nod_name = '000001'; $fix = '+' . urlencode('-深发展'); } } if ((preg_match('/^0([0-9]{5})$/', $this->nod_name) || $this->nod_name == '399001' || preg_match('/^3([0-9]{5})$/', $this->nod_name)) && $special == false) { $special = 'sz'; } $o = ''; if ($special == 'sh' || $special == 'sz') { $o .= '<tr><td align="center" class="hf" colspan="4" style="border-top: 1px solid #EEE;">'; $o .= '<script type="text/javascript"><!-- google_ad_client = "pub-9823529788289591"; google_alternate_color = "FFFFFF"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; //2007-06-14: V2EX google_ad_channel = "0814641667"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "999999"; google_color_text = "000000"; google_color_url = "00CC00"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>'; $o .= '</td></tr>'; $news = fetch_rss('http://news.google.com/news?hl=zh-CN&ned=cn&q=' . $this->nod_name . '+%7C+' . urlencode($this->nod_title) . $fix . '&ie=UTF-8&output=rss'); $blogs = fetch_rss('http://blogsearch.google.com/blogsearch_feeds?hl=en&q=' . $this->nod_name . '+%7C+' . urlencode($this->nod_title) . $fix . '&ie=utf-8&num=10&output=rss'); $tn = fetch_rss('http://feeds.technorati.com/search/' . $this->nod_name); $o .= '<tr><td align="left" class="hf" colspan="4" style="border-top: 1px solid #EEE;">'; $o .= '<span class="tip_i">'; $o .= '<img src="/img/pico_right.gif" align="absmiddle" /> '; $o .= $this->nod_header . ' <a href="#stock_chart" class="t">行情图表</a> | <a href="#stock_blogs" class="t"><img src="/img/googleblogsearch.gif" align="absmiddle" alt="Google Blog Search results for ' . $this->nod_title . '" border="0" /></a> | <a href="#stock_news" class="t">新闻资讯</a> | <a href="#stock_tn"><img src="/img/technorati.gif" align="absmiddle" alt="Technorati results for ' . $this->nod_title . '" border="0" /></a></span>'; $o .= _vo_hr(); $o .= '<div class="notify" style="margin-bottom: 5px;"><div style="float: right;"><a href="#;" onclick="window.scrollTo(0, 0);">回到顶部</a></div><span style="font-size: 14px;">'; $o .= _vo_ico_silk('chart_line'); $o .= ' ' . $this->nod_header . ' 的行情图表 <a name="stock_chart"></a></span></div>'; $o .= '<div align="center">'; $o .= '<script type="text/javascript" src="/js/babel_stock_switcher.js"> </script>'; $o .= '<script type="text/javascript">market = "' . $special . '"; code = "' . $this->nod_name . '";</script>'; $o .= '<span class="tip_i">图表切换<img src="/img/pico_right.gif" align="absmiddle" /> <a href="#;" onclick="stock_get_realtime();" class="t">分时行情</a> | <a href="#;" onclick="stock_get_k_min5();" class="t">5 分钟 K 线</a> | <a href="#;" onclick="stock_get_k_daily();" class="t">日 K 线</a> | <a href="#;" onclick="stock_get_k_weekly();" class="t">周 K 线</a> | <a href="#;" onclick="stock_get_k_monthly();" class="t">月 K 线</a> | <a href="#;" onclick="stock_get_rsi();" class="o">RSI</a> | <a href="#;" onclick="stock_get_macd();" class="o">MACD</a> | <a href="#;" onclick="stock_get_kdj();" class="o">KDJ</a> | <a href="#;" onclick="stock_get_mike();" class="o">MIKE</a></span><br />'; $o .= '<img id="stock_chart" src="http://image.sinajs.cn/newchart/min/n/' . $special . $this->nod_name . '.gif?' . time() . '" class="code" /></div>'; $o .= _vo_hr(); $o .= '<div class="notify"><div style="float: right;"><a href="#;" onclick="window.scrollTo(0, 0);">回到顶部</a></div><span style="font-size: 14px;">'; $o .= _vo_ico_silk('comments'); $o .= ' 来自 Google Blog Search 的关于 ' . $this->nod_header . ' 的最新消息 <a name="stock_blogs"></a></span></div>'; $i = 0; foreach ($blogs->items as $blog) { $i++; $css_class = $i % 2 == 0 ? 'even' : 'odd'; $d = str_replace('<b>', '', $blog['description']); $d = str_replace('</b>', '', $d); $t = str_replace('<b>', '', $blog['title']); $t = str_replace('</b>', '', $t); $o .= '<div class="geo_home_entry_' . $css_class . '">'; $o .= '<span style="font-size: 13px; display: block; margin-bottom: 5px;">'; $o .= _vo_ico_silk('bullet_blue'); $o .= ' <a href="' . $blog['link'] . '" class="var" style="color: ' . rand_color() . '">' . $t . '</a></span>'; $o .= $d; $o .= '</div>'; unset($blog); } $o .= _vo_hr(); $o .= '<div class="notify"><div style="float: right;"><a href="#;" onclick="window.scrollTo(0, 0);">回到顶部</a></div><span style="font-size: 14px;">'; $o .= _vo_ico_silk('world'); $o .= ' 来自互联网的关于 ' . $this->nod_header . ' 的最新资讯 <a name="stock_news"></a></span></div>'; $i = 0; foreach ($news->items as $item) { $i++; $css_class = $i % 2 == 0 ? 'even' : 'odd'; $n = str_replace('<br><table border=0 width= valign=top cellpadding=2 cellspacing=7>', '<table border=0 width= valign=top cellpadding=0 cellspacing=2>', $item['description']); $n = str_replace('<font color=#CC0033>' . $this->nod_title . '</font>', $this->nod_title, $n); $n = str_replace('<font color=#CC0033>' . $this->nod_title . $this->nod_name . '</font>', $this->nod_title . $this->nod_name, $n); $n = str_replace('<font color=#CC0033>' . $this->nod_name . $this->nod_title . '</font>', $this->nod_name . $this->nod_title, $n); $n = str_replace('<font color=#CC0033>' . $this->nod_name . '</font>', $this->nod_name, $n); $n = preg_replace('/<a href="([^"]+)" target=_blank>([^<]+)<\\/a><br>/', '<span style="font-size: 13px; display: block; margin-bottom: 5px;">' . _vo_ico_silk('bullet_black') . ' <a class="var" style="color: ' . rand_color() . '" rel="nofollow" href="$1" target="_blank">$2</a></span>', $n); $n = str_replace('<a class=p', '<img src="/img/pico_right.gif" align="absmiddle" /> <a class="t"', $n); $n = str_replace('<font size=-1>', '<font style="font-size: 12px;">', $n); $o .= '<div class="geo_home_entry_' . $css_class . '">' . $n . '</div>'; unset($item); } $o .= _vo_hr(); $o .= '<div class="notify"><div style="float: right;"><a href="#;" onclick="window.scrollTo(0, 0);">回到顶部</a></div><span style="font-size: 14px;">'; $o .= _vo_ico_silk('comments'); $o .= ' 来自 Technorati 的关于 ' . $this->nod_header . ' 的最新消息 <a name="stock_tn"></a></span></div>'; $i = 0; foreach ($tn->items as $blog) { $i++; $css_class = $i % 2 == 0 ? 'even' : 'odd'; $d = str_replace('<br /><br /><img width="1" height="1"', '<img width="1" height="1"', $blog['description']); $d = str_replace('Posted in', '<span class="tip"><small>Posted in</small></span>', $d); $t = $blog['title']; $o .= '<div class="geo_home_entry_' . $css_class . '">'; $o .= '<span style="font-size: 13px; display: block; margin-bottom: 5px;">'; $o .= _vo_ico_silk('bullet_blue'); $o .= ' <a href="' . $blog['link'] . '" class="var" style="color: ' . rand_color() . '">' . $t . '</a></span>'; $o .= $d; $o .= '</div>'; unset($blog); } $o .= _vo_hr(); $o .= '<span class="tip_i">各大财经网站关于 ' . $this->nod_title . ' (' . $this->nod_name . ') 的相关信息<img src="/img/pico_right.gif" align="absmiddle" /> '; $o .= '<a href="http://finance.sina.com.cn/realstock/company/' . $special . $this->nod_name . '/nc.shtml" class="var" style="color: ' . rand_color() . '" rel="external nofollow">新浪</a> | '; $o .= '<a href="http://stockdata.stock.hexun.com/dynamic/default.aspx?stockid=' . $this->nod_name . '" class="var" style="color: ' . rand_color() . '" rel="external nofollow">和讯</a> | '; $o .= '<a href="http://hq.eastmoney.com/' . $this->nod_name . '.html" class="var" style="color: ' . rand_color() . '" rel="external nofollow">东方财富网</a> | '; $o .= '<a href="http://quote.stockstar.com/stock/external_quote.asp?code=' . $special . 'ag' . $this->nod_name . '" class="var" style="color: ' . rand_color() . '" rel="external nofollow">证券之星</a> | '; $o .= '<a href="http://share.jrj.com.cn/cominfo/ggxw_' . $this->nod_name . '.htm" class="var" style="color: ' . rand_color() . '" rel="external nofollow">金融界</a>'; $o .= '</span>'; $o .= _vo_hr(); $o .= '<a href="#;" onclick="window.scrollTo(0, 0)">回到顶部</a>'; $o .= '<script type="text/javascript">stock_charts_preload();</script>'; $o .= '</td></tr>'; echo $o; $c->save($o, 'babel_node_stock_' . $this->nod_id); return true; } else { $c->save($o, 'babel_node_stock_' . $this->nod_id); return false; } } } }
<?php $tag_cache = 'babel_dashboard_contacts_' . $User->usr_id; if ($o = $c->load($tag_cache)) { } else { $o = ''; $tag_cache_online = 'babel_dashboard_contacts_' . $User->usr_id . '_online'; $tag_cache_offline = 'babel_dashboard_contacts_' . $User->usr_id . '_offline'; if (($contacts_online = $c->load($tag_cache_online)) && ($contacts_offline = $c->load($tag_cache_offline))) { $_contacts_online = unserialize($contacts_online); $_contacts_offline = unserialize($contacts_offline); $total = count($_contacts_online) + count($_contacts_offline); $o .= '<h2 class="dark"> ' . _vo_ico_silk('group') . ' 我的 ' . $total . ' 个联系人</h2>'; } else { $sql = "SELECT usr_id, usr_nick, usr_telephone FROM babel_user, babel_friend WHERE usr_id = frd_fid AND frd_uid = {$User->usr_id} ORDER BY usr_nick ASC"; $rs = mysql_query($sql); $o .= '<h2 class="dark"> ' . _vo_ico_silk('group') . ' 我的 ' . mysql_num_rows($rs) . ' 个联系人</h2>'; $i = 0; $_contacts_online = array(); $_contacts_offline = array(); while ($_contact = mysql_fetch_array($rs)) { $nick = mysql_real_escape_string($_contact['usr_nick']); $sql = "SELECT onl_hash FROM babel_online WHERE onl_nick = '{$nick}'"; $rs_online = mysql_query($sql); if (mysql_num_rows($rs_online) > 0) { $_contacts_online[] = $_contact; } else { $_contacts_offline[] = $_contact; } mysql_free_result($rs_online); } mysql_free_result($rs);
public function vxBlogEditSave($rt) { $Entry =& $rt['Entry']; $_modes = Weblog::vxGetEditorModes(); $_comment_permissions = Weblog::vxGetCommentPermissions(); $Weblog = new Weblog($Entry->bge_pid); if ($Entry->bge_published != 0) { $published_date = date('Y-n-j', $Entry->bge_published); $published_time = date('G:i:s', $Entry->bge_published); } else { $published_date = date('Y-n-j', time()); $published_time = date('G:i:s', time()); } _v_m_s(); echo '<link type="text/css" rel="stylesheet" href="/css/themes/' . BABEL_THEME . '/css_weblog.css" />'; _v_b_l_s(); _v_ico_map(); echo ' <a href="/">' . Vocabulary::site_name . '</a> > ' . $this->User->usr_nick_plain . ' > <a href="/blog/admin.vx">博客网志</a> > <a href="/blog/' . Weblog::DEFAULT_ACTION . '/' . $Weblog->blg_id . '.vx">' . make_plaintext($Weblog->blg_title) . '</a> > ' . make_plaintext($Entry->bge_title) . ' > 编辑文章 <span class="tip_i"><small>alpha</small></span>'; _v_d_e(); _v_b_l_s(); echo '<div align="left"><table cellpadding="5" cellspacing="" border="0" class="form">'; echo '<form action="/blog/edit/save/' . $Entry->bge_id . '.vx" method="post" id="form_blog_edit">'; echo '<tr><td colspan="2" align="left"><h1 class="ititle">'; _v_ico_tango_32('actions/document-new'); echo ' 撰写新文章</h1> <span class="tip_i">刚才提交的数据中有些问题需要修正</span></td></tr>'; echo '<tr><td colspan="2" align="right"><input onfocus="brightBox(this);" onblur="dimBox(this);" type="text" class="sllt" name="bge_title" value="' . make_single_return($rt['bge_title_value'], 0) . '" />'; if ($rt['bge_title_error'] > 0) { echo '<br /><span class="tip_i">' . _vo_ico_silk('exclamation') . ' ' . $rt['bge_title_error_msg'][$rt['bge_title_error']] . '</span>'; } echo '</td></tr>'; echo '<tr><td colspan="2" align="right"><textarea class="ml" rows="30" name="bge_body" style="width: 550px;">' . make_multi_return($rt['bge_body_value'], 0) . '</textarea>'; if ($rt['bge_body_error'] > 0) { echo '<br /><span class="tip_i">' . _vo_ico_silk('exclamation') . ' ' . $rt['bge_body_error_msg'][$rt['bge_body_error']] . '</span>'; } echo '</td></tr>'; echo '<tr><td width="100" align="right">格式</td><td align="left">'; echo '<select name="bge_mode">'; foreach ($_modes as $key => $mode) { if ($rt['bge_mode_value'] == $key) { echo '<option value="' . $key . '" selected="selected">' . $mode . '</option>'; } else { echo '<option value="' . $key . '">' . $mode . '</option>'; } } echo '</select>'; echo '</td></tr>'; echo '<tr><td width="100" align="right">评论许可</td><td align="left">'; echo '<select name="bge_comment_permission">'; foreach ($_comment_permissions as $key => $mode) { if ($rt['bge_comment_permission_value'] == $key) { echo '<option value="' . $key . '" selected="selected">' . $mode . '</option>'; } else { echo '<option value="' . $key . '">' . $mode . '</option>'; } } echo '</select>'; echo '</td></tr>'; echo '<tr><td width="100" align="right">标签</td><td align="left"><input onfocus="brightBox(this);" onblur="dimBox(this);" type="text" class="sll" name="bge_tags" value="" /></td></tr>'; echo '<tr><td width="100" align="right">状态</td><td align="left">'; echo '<select name="bge_status">'; if ($rt['bge_status_value'] == 1) { echo '<option value="0">草稿</option>'; echo '<option value="1" selected="selected">公开发布</option>'; } else { echo '<option value="0" selected="selected">草稿</option>'; echo '<option value="1">公开发布</option>'; } echo '</select>'; echo '</td></tr>'; echo '<tr><td width="100" align="right">发布时间</td><td align="left"><input onfocus="brightBox(this);" onblur="dimBox(this);" type="text" class="sl" name="bge_published_date" value="' . $published_date . '" /> <input onfocus="brightBox(this);" onblur="dimBox(this);" type="text" class="sl" name="bge_published_time" value="' . $published_time . '" /></td></tr>'; echo '<tr><td colspan="2" valign="middle" align="right" class="toolbar">'; echo '<input type="submit" value="保存" class="btn_white" /> '; echo '<input type="button" value="取消" class="btn_white" onclick="location.href=' . "'/blog/list/{$Weblog->blg_id}.vx'" . ';" /> '; echo '<input type="button" value="删除" class="btn_white" onclick="if (confirm(' . "'确认删除?'" . ')) { location.href = ' . "'/blog/erase/24.vx'" . '; } else { return false; }" />'; echo '</td></tr>'; echo '</form>'; echo '</table></div>'; _v_d_e(); _v_d_e(); }
public static function vxBuild($user_id, $weblog_id) { $start = microtime(true); $Weblog = new Weblog($weblog_id); if ($start - $Weblog->blg_lastbuilt < BABEL_WEBLOG_BUILD_INTERVAL) { $_SESSION['babel_message_weblog'] = _vo_ico_silk('clock') . ' 距离上次构建时间尚不足 ' . BABEL_WEBLOG_BUILD_INTERVAL . ' 秒,本次操作取消,请等待 ' . (BABEL_WEBLOG_BUILD_INTERVAL - intval($start - $Weblog->blg_lastbuilt)) . ' 秒之后再试验'; } else { require_once BABEL_PREFIX . '/libs/textile/classTextile.php'; require_once BABEL_PREFIX . '/libs/markdown/markdown.php'; require_once BABEL_PREFIX . '/libs/htmlpurifier/library/HTMLPurifier.auto.php'; $purifier_config = HTMLPurifier_Config::createDefault(); $purifier_config->set('Core', 'Encoding', 'UTF-8'); $purifier_config->set('HTML', 'Doctype', 'XHTML 1.0 Transitional'); $purifier = new HTMLPurifier($purifier_config); $Textile = new Textile(); $bytes = 0; $files = 0; /* check user home directory */ $usr_dir = BABEL_WEBLOG_PREFIX . '/' . BABEL_WEBLOG_WWWROOT . '/' . $Weblog->blg_name; if (!file_exists($usr_dir)) { mkdir($usr_dir); } /* clean old files */ foreach (glob($usr_dir . '/*.html') as $filename) { unlink($filename); } foreach (glob($usr_dir . '/*.css') as $filename) { unlink($filename); } foreach (glob($usr_dir . '/*.rss') as $filename) { unlink($filename); } $s = new Smarty(); $s->template_dir = BABEL_PREFIX . '/res/weblog/themes/' . $Weblog->blg_theme; if (!is_dir(BABEL_PREFIX . '/tplc/' . $Weblog->blg_theme)) { mkdir(BABEL_PREFIX . '/tplc/' . $Weblog->blg_theme); } $s->compile_dir = BABEL_PREFIX . '/tplc/' . $Weblog->blg_theme; $s->cache_dir = BABEL_PREFIX . '/cache/smarty'; $s->config_dir = BABEL_PREFIX . '/cfg'; $s->assign('ico_feed', 'http://' . BABEL_WEBLOG_SITE_STATIC . '/img/icons/silk/feed.png'); $s->assign('site_theme', $Weblog->blg_theme); $s->assign('site_static', BABEL_WEBLOG_SITE_STATIC); $s->assign('site_babel', BABEL_DNS_NAME); $s->assign('site_weblog_root', 'http://' . BABEL_WEBLOG_SITE . '/' . $Weblog->blg_name . '/'); $s->assign('site_url', 'http://' . BABEL_WEBLOG_SITE . '/' . $Weblog->blg_name . '/'); $s->assign('site_title', make_plaintext($Weblog->blg_title)); $s->assign('site_description', make_plaintext($Weblog->blg_description)); $s->assign('site_category', make_plaintext(Vocabulary::site_name)); $s->assign('site_lang', 'en'); $s->assign('license_show', $Weblog->blg_license_show); $s->assign('license_code', Weblog::vxGetLicenseCode($Weblog->blg_license)); $s->assign('built', date('Y-n-j G:i:s T', time())); $s->assign('user_nick', $Weblog->usr_nick); $s->assign('user_nick_plain', make_plaintext($Weblog->usr_nick)); $s->assign('user_nick_url', urlencode($Weblog->usr_nick)); $s->assign('user_brief_plain', make_plaintext($Weblog->usr_brief)); $s->assign('user_created_plain_short', date('n/j/Y', $Weblog->usr_created)); if ($Weblog->usr_portrait == '') { $s->assign('user_portrait', '/img/p_' . $Weblog->usr_gender . '.gif'); $s->assign('user_portrait_s', '/img/p_' . $Weblog->usr_gender . '_s.gif'); $s->assign('user_portrait_n', '/img/p_' . $Weblog->usr_gender . '_n.gif'); } else { $s->assign('user_portrait', '/img/p/' . $Weblog->usr_portrait . '.' . BABEL_PORTRAIT_EXT); $s->assign('user_portrait_s', '/img/p/' . $Weblog->usr_portrait . '_s.' . BABEL_PORTRAIT_EXT); $s->assign('user_portrait_n', '/img/p/' . $Weblog->usr_portrait . '_n.' . BABEL_PORTRAIT_EXT); } $s->assign('user_ing', $Weblog->blg_ing); $s->assign('google_analytics', '<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script><script type="text/javascript">_uacct = "UA-841322-3"; urchinTracker();</script>'); $sql = "SELECT DISTINCT bet_tag FROM babel_weblog_entry_tag WHERE bet_eid IN (SELECT bge_id FROM babel_weblog_entry WHERE bge_pid = {$Weblog->blg_id}) ORDER BY bet_tag ASC"; $rs = mysql_query($sql); $_tags = array(); while ($_tag = mysql_fetch_array($rs)) { $_tags[] = $_tag; } mysql_free_result($rs); $s->assign('tags', $_tags); $links = array(); foreach ($Weblog->blg_links as $category) { $category['category'] = str_replace('\\|', '|', $category['category']); $category_md5 = md5($category['category']); if (count($category['links']) > 0) { $links[$category_md5] = array(); $links[$category_md5]['category'] = make_plaintext($category['category']); $links[$category_md5]['links'] = array(); foreach ($category['links'] as $link) { $link['title'] = str_replace('\\|', '|', $link['title']); $link_md5 = md5($link['url']); $links[$category_md5]['links'][$link_md5] = array(); $links[$category_md5]['links'][$link_md5]['title'] = make_plaintext($link['title']); $links[$category_md5]['links'][$link_md5]['url'] = make_plaintext($link['url']); } } } $s->assign('links', $links); if ($Weblog->blg_theme == 'cloud') { $sql_order = "ASC"; $sql_limit_index = ""; } else { $sql_order = "DESC"; $sql_limit_index = "LIMIT 10"; } /* S: index.smarty */ $sql = "SELECT bge_id, bge_title, bge_body, bge_mode, bge_tags, bge_comments, bge_trackbacks, bge_comment_permission, bge_published, usr_id, usr_nick FROM babel_weblog_entry, babel_user WHERE bge_uid = usr_id AND bge_uid = {$Weblog->usr_id} AND bge_pid = {$Weblog->blg_id} AND bge_status = 1 ORDER BY bge_published {$sql_order} {$sql_limit_index}"; $rs = mysql_query($sql); $entries_count = mysql_num_rows($rs); $_entries = array(); $_ids = array(); $i = 0; while ($_entry = mysql_fetch_array($rs)) { $i++; $_entries[$_entry['bge_id']] = $_entry; $_ids[$i] = $_entry['bge_id']; if ($i == 1) { $_entries[$_entry['bge_id']]['first'] = 1; } else { $_entries[$_entry['bge_id']]['first'] = 0; } if ($i == $entries_count) { $_entries[$_entry['bge_id']]['last'] = 1; } else { $_entries[$_entry['bge_id']]['last'] = 0; } if ($_entries[$_entry['bge_id']]['first'] == 0 && $_entries[$_entry['bge_id']]['first'] == 1) { $_entries[$_entry['bge_id']]['middle'] = 1; } else { $_entries[$_entry['bge_id']]['middle'] = 0; } $_entries[$_entry['bge_id']]['url'] = 'http://' . BABEL_WEBLOG_SITE . '/' . $Weblog->blg_name . '/entry-' . $_entry['bge_id'] . '.html'; $_entries[$_entry['bge_id']]['url_url'] = urlencode($_entries[$_entry['bge_id']]['url']); $_entries[$_entry['bge_id']]['bge_title_plain'] = make_plaintext($_entry['bge_title']); $_entries[$_entry['bge_id']]['bge_title_url'] = urlencode($_entry['bge_title']); $_entries[$_entry['bge_id']]['usr_nick_plain'] = make_plaintext($_entry['usr_nick']); $_entries[$_entry['bge_id']]['usr_nick_url'] = urlencode($_entry['usr_nick']); $_entries[$_entry['bge_id']]['bge_published_plain'] = date('Y-n-j G:i:s T', $_entry['bge_published']); switch (intval($_entry['bge_mode'])) { case 0: // plain text $_entries[$_entry['bge_id']]['bge_body_plain'] = make_plaintext(trim($_entry['bge_body'])); break; case 1: // html $_entries[$_entry['bge_id']]['bge_body_plain'] = $purifier->purify($_entry['bge_body']); break; case 2: // ubb $_entries[$_entry['bge_id']]['bge_body_plain'] = format_ubb($_entry['bge_body']); break; case 3: // textile $_entries[$_entry['bge_id']]['bge_body_plain'] = $purifier->purify($Textile->TextileThis($_entry['bge_body'])); break; case 4: // $_entries[$_entry['bge_id']]['bge_body_plain'] = $purifier->purify(Markdown($_entry['bge_body'])); break; } $_entries[$_entry['bge_id']]['bge_body_plain_rss'] = htmlspecialchars($_entries[$_entry['bge_id']]['bge_body_plain']); if ($_entry['bge_tags'] == '') { $_entries[$_entry['bge_id']]['bge_tags_plain'] = ''; $_entries[$_entry['bge_id']]['bge_tags_plain_comma'] = ''; } else { $_entries[$_entry['bge_id']]['bge_tags_plain'] = Weblog::vxMakeTagLink($_entry['bge_tags']); $_entries[$_entry['bge_id']]['bge_tags_plain_comma'] = Weblog::vxMakeTagLinkComma($_entry['bge_tags']); } $_entries[$_entry['bge_id']]['bge_published_plain_short'] = date('m/d/Y', $_entry['bge_published']); $_entries[$_entry['bge_id']]['bge_published_plain_long'] = date('m/d/Y H:i:s T', $_entry['bge_published']); } mysql_free_result($rs); $i = 0; foreach ($_ids as $num => $id) { $i++; $next = $i + 1; $prev = $i - 1; if (isset($_ids[$next])) { $_entries[$id]['next'] = $_ids[$next]; } else { $_entries[$id]['next'] = 0; } if (isset($_ids[$prev])) { $_entries[$id]['prev'] = $_ids[$prev]; } else { $_entries[$id]['prev'] = 0; } } $s->assign('entries', $_entries); $file_index = $usr_dir . '/index.html'; $o_index = $s->fetch('index.smarty'); $files++; $bytes += file_put_contents($file_index, $o_index); $file_feed_main = $usr_dir . '/index.rss'; $o_feed_main = $s->fetch('feed.smarty'); $files++; $bytes += file_put_contents($file_feed_main, $o_feed_main); /* E: index.smarty */ /* S: tag.smarty */ foreach ($_tags as $tag) { $s->assign('tag_cur', $tag['bet_tag']); $tag_sql = mysql_real_escape_string($tag['bet_tag']); $sql = "SELECT bge_id, bge_title, bge_body, bge_tags, bge_comments, bge_trackbacks, bge_mode, bge_comment_permission, bge_published, usr_id, usr_nick FROM babel_weblog_entry, babel_user WHERE bge_uid = usr_id AND bge_uid = {$Weblog->usr_id} AND bge_pid = {$Weblog->blg_id} AND bge_status = 1 AND bge_id IN (SELECT bet_eid FROM babel_weblog_entry_tag WHERE bet_tag = '{$tag_sql}') ORDER BY bge_published {$sql_order}"; $rs = mysql_query($sql); $_entries = array(); $i = 0; while ($_entry = mysql_fetch_array($rs)) { $i++; $_entries[$_entry['bge_id']] = $_entry; $_entries[$_entry['bge_id']]['url'] = 'http://' . BABEL_WEBLOG_SITE . '/' . $Weblog->blg_name . '/entry-' . $_entry['bge_id'] . '.html'; $_entries[$_entry['bge_id']]['url_url'] = urlencode($_entries[$_entry['bge_id']]['url']); $_entries[$_entry['bge_id']]['bge_title_plain'] = make_plaintext($_entry['bge_title']); $_entries[$_entry['bge_id']]['bge_title_url'] = urlencode($_entry['bge_title']); $_entries[$_entry['bge_id']]['usr_nick_plain'] = make_plaintext($_entry['usr_nick']); $_entries[$_entry['bge_id']]['usr_nick_url'] = urlencode($_entry['usr_nick']); $_entries[$_entry['bge_id']]['bge_published_plain'] = date('Y-n-j G:i:s T', $_entry['bge_published']); switch (intval($_entry['bge_mode'])) { case 0: // plain text $_entries[$_entry['bge_id']]['bge_body_plain'] = make_plaintext(trim($_entry['bge_body'])); break; case 1: // html $_entries[$_entry['bge_id']]['bge_body_plain'] = $purifier->purify($_entry['bge_body']); break; case 2: // ubb $_entries[$_entry['bge_id']]['bge_body_plain'] = format_ubb($_entry['bge_body']); break; case 3: // textile $_entries[$_entry['bge_id']]['bge_body_plain'] = $purifier->purify($Textile->TextileThis($_entry['bge_body'])); break; case 4: // $_entries[$_entry['bge_id']]['bge_body_plain'] = $purifier->purify(Markdown($_entry['bge_body'])); break; } $_entries[$_entry['bge_id']]['bge_body_plain_rss'] = htmlspecialchars($_entries[$_entry['bge_id']]['bge_body_plain']); if ($_entry['bge_tags'] == '') { $_entries[$_entry['bge_id']]['bge_tags_plain'] = ''; } else { $_entries[$_entry['bge_id']]['bge_tags_plain'] = Weblog::vxMakeTagLink($_entry['bge_tags']); } if ($_entry['bge_tags'] == '') { $_entries[$_entry['bge_id']]['bge_tags_plain_comma'] = ''; } else { $_entries[$_entry['bge_id']]['bge_tags_plain_comma'] = Weblog::vxMakeTagLinkComma($_entry['bge_tags']); } $_entries[$_entry['bge_id']]['bge_published_plain_short'] = date('m/d/Y', $_entry['bge_published']); $_entries[$_entry['bge_id']]['bge_published_plain_long'] = date('m/d/Y H:i:s T', $_entry['bge_published']); } mysql_free_result($rs); $s->assign('entries', $_entries); $s->assign('count_tag_cur', $i); $file_tag = $usr_dir . '/tag-' . $tag['bet_tag'] . '.html'; $o_tag = $s->fetch('tag.smarty'); $files++; $bytes += file_put_contents($file_tag, $o_tag); $file_feed_tag = $usr_dir . '/tag-' . $tag['bet_tag'] . '.rss'; $o_feed_tag = $s->fetch('feed_tag.smarty'); $files++; $bytes += file_put_contents($file_feed_tag, $o_feed_tag); } /* E: tag.smarty */ /* S: entry.smarty */ $sql = "SELECT bge_id, bge_title, bge_body, bge_tags, bge_comments, bge_trackbacks, bge_mode, bge_comment_permission, bge_published, usr_id, usr_nick FROM babel_weblog_entry, babel_user WHERE bge_uid = usr_id AND bge_uid = {$Weblog->usr_id} AND bge_pid = {$Weblog->blg_id} AND bge_status = 1 ORDER BY bge_published {$sql_order}"; $rs = mysql_query($sql); $i = 0; while ($_entry = mysql_fetch_array($rs)) { $i++; $next = $i + 1; $prev = $i - 1; if (isset($_ids[$next])) { $_entry['next'] = $_ids[$next]; } else { $_entry['next'] = 0; } if (isset($_ids[$prev])) { $_entry['prev'] = $_ids[$prev]; } else { $_entry['prev'] = 0; } $_entry['url'] = 'http://' . BABEL_WEBLOG_SITE . '/' . $Weblog->blg_name . '/entry-' . $_entry['bge_id'] . '.html'; $_entry['url_url'] = urlencode($_entry['url']); $_entry['bge_title_plain'] = make_plaintext($_entry['bge_title']); $_entry['bge_title_url'] = urlencode($_entry['bge_title']); $_entry['usr_nick_plain'] = make_plaintext($_entry['usr_nick']); $_entry['usr_nick_url'] = urlencode($_entry['usr_nick']); $_entry['bge_body_plain'] = make_plaintext($_entry['bge_body']); $_entry['bge_published_plain'] = date('Y-n-j G:i:s T', $_entry['bge_published']); switch (intval($_entry['bge_mode'])) { case 0: // plain text $_entry['bge_body_plain'] = make_plaintext(trim($_entry['bge_body'])); break; case 1: // html $_entry['bge_body_plain'] = $purifier->purify($_entry['bge_body']); break; case 2: // ubb $_entry['bge_body_plain'] = format_ubb($_entry['bge_body']); break; case 3: // textile $_entry['bge_body_plain'] = $purifier->purify($Textile->TextileThis($_entry['bge_body'])); break; case 4: // $_entry['bge_body_plain'] = $purifier->purify(Markdown($_entry['bge_body'])); break; } if ($_entry['bge_tags'] == '') { $_entry['bge_tags_plain'] = ''; } else { $_entry['bge_tags_plain'] = Weblog::vxMakeTagLink($_entry['bge_tags']); } if ($_entry['bge_tags'] == '') { $_entry['bge_tags_plain_comma'] = ''; } else { $_entry['bge_tags_plain_comma'] = Weblog::vxMakeTagLinkComma($_entry['bge_tags']); } $_entry['bge_published_plain_short'] = date('m/d/Y', $_entry['bge_published']); $_entry['bge_published_plain_long'] = date('m/d/Y H:i:s T', $_entry['bge_published']); $file_entry = $usr_dir . '/entry-' . $_entry['bge_id'] . '.html'; $s->assign('entry', $_entry); $o_entry = $s->fetch('entry.smarty'); $files++; $bytes += file_put_contents($file_entry, $o_entry); } /* style.smarty */ $file_style = $usr_dir . '/style.css'; $s->left_delimiter = '['; $s->right_delimiter = ']'; $o_style = $s->fetch('style.smarty'); $files++; $bytes += file_put_contents($file_style, $o_style); $s->left_delimiter = '{'; $s->right_delimiter = '}'; $Weblog->vxAddBuild(); $Weblog->vxTouchBuild(); $Weblog->vxUpdateComments(); // Ping Ping-o-Matic /* require_once('Zend/Http/Client.php'); $blg_url_url = urlencode('http://' . BABEL_WEBLOG_SITE . '/' . $Weblog->blg_name . '/'); $blg_title_url = urlencode($Weblog->blg_title); $ping = 'http://pingomatic.com/ping/?title=' . $blg_title_url . '&blogurl=' . $blg_url_url . '&rssurl=&chk_weblogscom=on&chk_blogs=on&chk_technorati=on&chk_feedburner=on&chk_newsgator=on&chk_feedster=on&chk_myyahoo=on&chk_blogstreet=on&chk_icerocket=on'; $client = new Zend_Http_Client($ping, array('timeout' => 15)); try { $client->request(); } catch (Exception $e) { } */ $end = microtime(true); $elapsed = $end - $start; $_SESSION['babel_message_weblog'] = _vo_ico_silk('tick') . ' 博客网站 ' . make_plaintext($Weblog->blg_title) . ' 基于 ' . $Weblog->blg_theme . ' 主题重新构建成功,' . $files . ' 个文件共写入了 ' . $bytes . ' 字节,共耗时 <small>' . $elapsed . '</small> 秒,<a href="http://' . BABEL_WEBLOG_SITE . '/' . $Weblog->blg_name . '/?.rand=' . rand(11, 99) . '" class="t" target="_blank">现在查看</a> <img src="/img/ext.png" align="absmiddle" />'; } }