/**
 * Парсит HTML одного комментария в статьях
 * 
 * @param  array $aOne массив с данными комментария
 * @param  int $status статус: 0 - не проверенно, 1 - утверждено, 2 - удалено
 * @param  string $sKind опционально. тип записи
 * @param  array $aStream данные о потоке
 * @param  int $nCnt количество записей в потоке
 * @param  int $nContentId идентификатор сущности из admin_contents (фактический из потоков, то есть со сборными)
 * @return string HTML
 */
function _parseArticleCommentOne($aOne = array(), $status = 0, $sKind = '0', $aStream = array(), $nCnt = 0, $nContentId = 0)
{
    global $stop_words, $sTeam;
    $sAttach = '';
    if ($aOne['attach']) {
        $nn = 1;
        foreach ($aOne['attach'] as $attach) {
            $aData = getAttachDisplayData(null, $attach['fname'], $attach['path']);
            $sAttach .= _parseAttach($aData);
        }
    }
    $sLink = getFriendlyURL('article', $aOne['src_id']) . '#c_' . $aOne['id'];
    $aTitle = !$aOne['src_name'] ? 'Без названия' : reformat(xmloutofrangechars($aOne['src_name']), 59, 0, 1);
    $sMsgText = wysiwygLinkEncode(xmloutofrangechars($aOne['msgtext']));
    $sMsgText = $status != 1 ? $stop_words->replace($sMsgText) : $sMsgText;
    $sMsgText = reformat($sMsgText, 45, 0, 0, 1);
    $sMsgText = wysiwygLinkDecode($sMsgText);
    $aOne['context_code'] = '6';
    $aOne['context_link'] = $sLink;
    $aOne['context_title'] = xmloutofrangechars($aOne['src_name']);
    $sYoutubeLink = '';
    if (trim($aOne['youtube_link'])) {
        $url = preg_replace("/^(http:\\/\\/youtu\\.be\\/([-_A-Za-z0-9]+))/i", HTTP_PREFIX . "youtube.com/v/\$2", $aOne['youtube_link']);
        $url = str_replace('watch?v=', 'v/', $url);
        if (!stripos($url, 'fs=1')) {
            $url .= '&fs=1';
        }
        $sYoutubeLink = ' 
        <object width="300" height="247" type="application/x-shockwave-flash" id="myytplayer_youtube-1376" style="text-align: center;" data="' . $url . '"><param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always"><param name="wmode" value="opaque">
        <embed src="' . $url . '" 
		width="300" height="247" name="ytplayer-youtube-' . $aOne['id'] . '" id="myytplayer_youtube-' . $aOne['id'] . '" align="middle"
		allowScriptAccess="always" allowFullScreen="true" wmode="opaque"
		type="application/x-shockwave-flash"
		pluginspage="http://www.macromedia.com/go/getflashplayer" />
        </object>
        ';
    }
    $sUserClass = is_emp($aOne['role']) ? '6db335' : 'fd6c30';
    $sJSParams = "{'content_id': {$nContentId}, 'stream_id': '{$aStream['stream_id']}', 'content_cnt': {$nCnt}, 'status': {$status}, 'is_sent': '{$aOne['is_sent']}'}";
    $sEditIcon = _parseEditIcon('admEditArtCom', $aOne['id'], $status, $sKind, $sJSParams);
    $sKindIco = '<img class="b-post__pic b-post__pic_valign_mid" src="/images/frame-articles.png" alt="" />&nbsp;';
    $sPro = $aOne['is_pro'] == 't' ? preg_replace('#<a[^>]+>(.+)</a>#', '$1', is_emp($aOne['role']) ? view_pro_emp() : view_pro2($aOne['is_pro_test'] == 't' ? true : false)) . '&nbsp;' : '';
    $sReturn .= '
<div class="b-post b-post_bordtop_dfe3e4 b-post_padtop_15 b-post_marg_20_10" id="my_div_content_' . $aOne['content_id'] . '_' . $aOne['id'] . '_' . $sKind . '">
    ' . _parseHidden($aOne, $sKind) . '
    ' . _parseOkIcon($status, $aOne['content_id'], $aOne['id'], $sKind, $aOne['user_id']) . '
    ' . _parsePostTime($status, $aOne['post_time']) . '
    <div class="b-username b-username_padbot_10">' . ($aOne['is_team'] == 't' ? $sTeam : $sPro) . '<a class="b-username__link b-username__link_color_' . $sUserClass . ' b-username__link_fontsize_11 b-username__link_bold" href="/users/' . $aOne['login'] . '" target="_blank">' . $aOne['uname'] . ' ' . $aOne['usurname'] . ' [' . $aOne['login'] . ']</a></div>
    ' . ($aOne['warn'] ? '<div class="b-username_padbot_5"><a onclick="parent.user_content.getUserWarns(' . $aOne['user_id'] . ');" href="javascript:void(0);" class="notice">Предупреждения:&nbsp;<span id="warn_' . $aOne['user_id'] . '_' . $aOne['content_id'] . '_' . $aOne['id'] . '">' . intval($aOne['warn']) . '</span></a></div>' : '<div class="b-username_padbot_5 user-notice">Предупреждений нет</div>') . '
    ' . _parseMass($aOne, $status, $sKind) . '
    <div class="b-post__txt b-post__txt_padbot_5 b-post__txt_fontsize_15">' . $sKindIco . ' <a class="b-post__link b-post__link_bold b-post__link_fontsize_15" href="' . $sLink . '" target="_blank">' . $aTitle . '</a></div>
    <div class="b-post__txt b-post__txt_fontsize_15">' . $sMsgText . '</div>
    ' . $sAttach . $sYoutubeLink . _parseDelIcons($aOne, 'user_id', $status, $sKind, $sJSParams, $sEditIcon) . '
</div>';
    return $sReturn;
}
 function doattach_action()
 {
     if (!empty($_GET['siteid'])) {
         $id = intval($_GET['siteid']);
         $attach = intval($_GET['attach']);
         if ($id) {
             $paseapi = $this->site->GetOne('and id=' . $id);
         } else {
             $paseapi = $this->site->GetOne('and id>0');
         }
         if ($paseapi['apirep'] && $paseapi['isallowed']) {
             if ($GLOBALS['setting']['site_allow_city'] && $paseapi['cityapi'] && $paseapi['cityrep']) {
                 set_time_limit(300);
                 $citylist = $paseapi['cityapi'];
                 $city = $this->curl->get($citylist);
                 $city = XML_unserialize($city);
                 $str = $paseapi['cityrep'];
                 $citydata = _parseAttach($str, $city);
                 foreach ($citydata as $v) {
                     $url = str_replace('_limengqicityname', $v['cityname'], str_replace('_limengqicityid', $v['cityid'], $paseapi['siteapi']));
                     $cdata = $this->curl->get($url);
                     $cdata = XML_unserialize($cdata);
                     $cdata = _parseAttach($paseapi['apirep'], $cdata);
                     foreach ($cdata as $v) {
                         $rowsdata[] = $v;
                     }
                     sleep(1);
                 }
             } else {
                 set_time_limit(180);
                 $data = $this->curl->get($paseapi['siteapi']);
                 $data = XML_unserialize($data);
                 $rowsdata = _parseAttach($paseapi['apirep'], $data);
             }
             if ($rowsdata) {
                 foreach ($rowsdata as $rows) {
                     $subject = trim($rows['subject']);
                     if (!empty($subject)) {
                         $rows['url'] = empty($rows['url']) ? 'http://' : $rows['url'];
                         $rows['siteid'] = $paseapi['id'];
                         $rows['groupsite'] = $paseapi['sitename'];
                         $container = 'and subject="' . $subject . '" and siteid=' . $paseapi['id'];
                         $oldsiteinfo = $this->tempsite->GetOne($container);
                         if (!$oldsiteinfo) {
                             $insertid = $this->tempsite->InsertData($rows);
                             if (!$insertid) {
                                 $fp = fopen(ROOT_PATH . '/views/admin/log/attacherror.log', 'w');
                                 fwrite($fp, $paseapi['sitename'] . '(' . $paseapi['apiurl'] . ")失败\n");
                                 fclose($fp);
                             } elseif ($GLOBALS['setting']['site_allow_insert']) {
                                 $this->_autoInsertGroup($insertid);
                             }
                         }
                     } else {
                         continue;
                     }
                 }
             }
         } elseif (!$attach && $paseapi['isallowed']) {
             sheader('index.php?con=admin&act=attach', 3, $paseapi['sitename'] . '未添加规则', 'redirect', true);
         }
         if ($attach) {
             $nextapi = $this->site->GetOne('and id>' . $paseapi['id'] . ' and isallowed=1', array(), 'order by id asc');
             if ($nextapi) {
                 if (empty($paseapi['apirep'])) {
                     $message = '“' . $paseapi['sitename'] . '“未添加规则 ';
                     $showtime = 1;
                 } elseif ($paseapi['isallowed']) {
                     $message = '“' . $paseapi['sitename'] . '“采集完毕 ';
                     $showtime = 3;
                 } else {
                     $message = '“' . $paseapi['sitename'] . '“禁止采集 ';
                     $showtime = 1;
                 }
                 sheader('index.php?con=admin&act=doattach&siteid=' . $nextapi['id'] . '&attach=1', $showtime, $message . '进入下一个“' . $nextapi['sitename'] . '“', 'redirect', true);
             } else {
                 sheader('index.php?con=admin&act=attach', 3, '没有下一个了', 'redirect', true);
             }
         } elseif ($paseapi['isallowed']) {
             sheader('index.php?con=admin&act=attach', 3, '采集完毕', 'redirect', true);
         } else {
             sheader('index.php?con=admin&act=attach', 1, '禁止采集', 'redirect', true);
         }
     } else {
         sheader('index.php?con=admin&act=attach', 3, '参数为空', 'redirect', true);
     }
 }