예제 #1
0
    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;
                }
            }
        }
    }
예제 #2
0
		<?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">&nbsp;' . _vo_ico_silk('group') . '&nbsp;&nbsp;我的 ' . $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">&nbsp;' . _vo_ico_silk('group') . '&nbsp;&nbsp;我的 ' . 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);
예제 #3
0
 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> &gt; ' . $this->User->usr_nick_plain . ' &gt; <a href="/blog/admin.vx">博客网志</a> &gt; <a href="/blog/' . Weblog::DEFAULT_ACTION . '/' . $Weblog->blg_id . '.vx">' . make_plaintext($Weblog->blg_title) . '</a> &gt; ' . make_plaintext($Entry->bge_title) . ' &gt; 编辑文章 <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();
 }
예제 #4
0
 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" />';
     }
 }