/** * Парсит 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="" /> '; $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)) . ' ' : ''; $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">Предупреждения: <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); } }