$accountQue = $account ? 'site=' . $account . ' and ' : ''; $_WHERE = $accountQue . 'd_regis > ' . $year1 . sprintf('%02d', $month1) . sprintf('%02d', $day1) . '000000 and d_regis < ' . $year2 . sprintf('%02d', $month2) . sprintf('%02d', $day2) . '240000'; if ($bid) { $_WHERE .= ' and bbs=' . $bid; } if ($notice) { $_WHERE .= ' and notice=1'; } if ($hidden) { $_WHERE .= ' and hidden=1'; } if ($where && $keyw) { if (strstr('[name][nic][id][ip]', $where)) { $_WHERE .= " and " . $where . "='" . $keyw . "'"; } else { $_WHERE .= getSearchSql($where, $keyw, $ikeyword, 'or'); } } $RCD = getDbArray($table[$module . 'data'], $_WHERE, '*', $sort, $orderby, $recnum, $p); $NUM = getDbRows($table[$module . 'data'], $_WHERE); $TPG = getTotalPage($NUM, $recnum); ?> <div id="bbslist"> <div class="sbox"> <form name="procForm" action="<?php echo $g['s']; ?>
include_once $g['dir_module_skin'] . '_menu.php'; $year1 = $year1 ? $year1 : substr($date['today'], 0, 4); $month1 = $month1 ? $month1 : substr($date['today'], 4, 2); $day1 = $day1 ? $day1 : 1; //substr($date['today'],6,2); $year2 = $year2 ? $year2 : substr($date['today'], 0, 4); $month2 = $month2 ? $month2 : substr($date['today'], 4, 2); $day2 = $day2 ? $day2 : substr($date['today'], 6, 2); $sort = $sort ? $sort : 'uid'; $orderby = $orderby ? $orderby : 'desc'; $recnum = $recnum && $recnum < 200 ? $recnum : 20; $sqlque = 'mbruid=' . $my['uid'] . ' and site=' . $s; $sqlque = $sqlque . ' and d_regis > ' . $year1 . sprintf('%02d', $month1) . sprintf('%02d', $day1) . '000000 and d_regis < ' . $year2 . sprintf('%02d', $month2) . sprintf('%02d', $day2) . '240000'; if ($where && $keyword) { $sqlque .= getSearchSql($where, $keyword, $ikeyword, 'or'); } $RCD = getDbArray($table['s_referer'], $sqlque, '*', $sort, $orderby, $recnum, $p); $NUM = getDbRows($table['s_referer'], $sqlque); $TPG = getTotalPage($NUM, $recnum); ?> <div id="loglist"> <form name="bbssearchf" action="<?php echo $g['s']; ?> /"> <input type="hidden" name="r" value="<?php
function queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view, $search, $search_mode, $match_on, $override_order = false, $offset = 0, $owner_uid = 0) { if (!$owner_uid) { $owner_uid = $_SESSION["uid"]; } if ($search) { $search_query_part = getSearchSql($search, $match_on); $search_query_part .= " AND "; } else { $search_query_part = ""; } $view_query_part = ""; if ($view_mode == "adaptive" || $view_query_part == "noscores") { if ($search) { $view_query_part = " "; } else { if ($feed != -1) { $unread = getFeedUnread($link, $feed, $cat_view); if ($unread > 0) { $view_query_part = " unread = true AND "; } } } } if ($view_mode == "marked") { $view_query_part = " marked = true AND "; } if ($view_mode == "unread") { $view_query_part = " unread = true AND "; } if ($view_mode == "updated") { $view_query_part = " (last_read is null and unread = false) AND "; } if ($limit > 0) { $limit_query_part = "LIMIT " . $limit; } $vfeed_query_part = ""; // override query strategy and enable feed display when searching globally if ($search && $search_mode == "all_feeds") { $query_strategy_part = "ttrss_entries.id > 0"; $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; /* tags */ } else { if (preg_match("/^-?[0-9][0-9]*\$/", $feed) == false) { $query_strategy_part = "ttrss_entries.id > 0"; $vfeed_query_part = "(SELECT title FROM ttrss_feeds WHERE\n\t\t\t\t\tid = feed_id) as feed_title,"; } else { if ($feed > 0 && $search && $search_mode == "this_cat") { $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; $tmp_result = false; if ($cat_view) { $tmp_result = db_query($link, "SELECT id \n\t\t\t\t\t\tFROM ttrss_feeds WHERE cat_id = '{$feed}'"); } else { $tmp_result = db_query($link, "SELECT id\n\t\t\t\t\t\tFROM ttrss_feeds WHERE cat_id = (SELECT cat_id FROM ttrss_feeds \n\t\t\t\t\t\t\tWHERE id = '{$feed}') AND id != '{$feed}'"); } $cat_siblings = array(); if (db_num_rows($tmp_result) > 0) { while ($p = db_fetch_assoc($tmp_result)) { array_push($cat_siblings, "feed_id = " . $p["id"]); } $query_strategy_part = sprintf("(feed_id = %d OR %s)", $feed, implode(" OR ", $cat_siblings)); } else { $query_strategy_part = "ttrss_entries.id > 0"; } } else { if ($feed > 0) { if ($cat_view) { if ($feed > 0) { $query_strategy_part = "cat_id = '{$feed}'"; } else { $query_strategy_part = "cat_id IS NULL"; } $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; } else { $tmp_result = db_query($link, "SELECT id \n\t\t\t\t\t\tFROM ttrss_feeds WHERE parent_feed = '{$feed}'\n\t\t\t\t\t\tORDER BY cat_id,title"); $parent_ids = array(); if (db_num_rows($tmp_result) > 0) { while ($p = db_fetch_assoc($tmp_result)) { array_push($parent_ids, "feed_id = " . $p["id"]); } $query_strategy_part = sprintf("(feed_id = %d OR %s)", $feed, implode(" OR ", $parent_ids)); $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; } else { $query_strategy_part = "feed_id = '{$feed}'"; } } } else { if ($feed == 0) { // starred virtual feed $query_strategy_part = "feed_id IS NULL"; } else { if ($feed == -1) { // starred virtual feed $query_strategy_part = "marked = true"; $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; } else { if ($feed == -2) { // published virtual feed OR labels category if (!$cat_view) { $query_strategy_part = "published = true"; $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; } else { $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; $ext_tables_part = ",ttrss_labels2,ttrss_user_labels2"; $query_strategy_part = "ttrss_labels2.id = ttrss_user_labels2.label_id AND\n\t\t\t\t\t\tttrss_user_labels2.article_id = ref_id"; } } else { if ($feed == -3) { // fresh virtual feed $query_strategy_part = "unread = true"; $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE", $owner_uid); if (DB_TYPE == "pgsql") { $query_strategy_part .= " AND updated > NOW() - INTERVAL '{$intl} hour' "; } else { $query_strategy_part .= " AND updated > DATE_SUB(NOW(), INTERVAL {$intl} HOUR) "; } $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; } else { if ($feed == -4) { // all articles virtual feed $query_strategy_part = "true"; $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; } else { if ($feed <= -10) { // labels $label_id = -$feed - 11; $query_strategy_part = "label_id = '{$label_id}' AND\n\t\t\t\t\tttrss_labels2.id = ttrss_user_labels2.label_id AND\n\t\t\t\t\tttrss_user_labels2.article_id = ref_id"; $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; $ext_tables_part = ",ttrss_labels2,ttrss_user_labels2"; } else { $query_strategy_part = "id > 0"; // dumb } } } } } } } } } } if (get_pref($link, 'REVERSE_HEADLINES', $owner_uid)) { $order_by = "updated"; } else { $order_by = "updated DESC"; } if ($view_mode != "noscores") { $order_by = "score DESC, {$order_by}"; } if ($override_order) { $order_by = $override_order; } $feed_title = ""; if ($search) { $feed_title = "Search results"; } else { if ($cat_view) { $feed_title = getCategoryTitle($link, $feed); } else { if ((int) $feed == $feed && $feed > 0) { $result = db_query($link, "SELECT title,site_url,last_error \n\t\t\t\t\t\t\tFROM ttrss_feeds WHERE id = '{$feed}' AND owner_uid = {$owner_uid}"); $feed_title = db_fetch_result($result, 0, "title"); $feed_site_url = db_fetch_result($result, 0, "site_url"); $last_error = db_fetch_result($result, 0, "last_error"); } else { $feed_title = getFeedTitle($link, $feed); } } } $content_query_part = "content as content_preview,"; if (preg_match("/^-?[0-9][0-9]*\$/", $feed) != false) { if ($feed >= 0) { $feed_kind = "Feeds"; } else { $feed_kind = "Labels"; } if ($limit_query_part) { $offset_query_part = "OFFSET {$offset}"; } if ($vfeed_query_part && get_pref($link, 'VFEED_GROUP_BY_FEED', $owner_uid)) { if (!$override_order) { $order_by = "ttrss_feeds.title, {$order_by}"; } } if ($feed != "0") { $from_qpart = "ttrss_entries,ttrss_user_entries,ttrss_feeds{$ext_tables_part}"; $feed_check_qpart = "ttrss_user_entries.feed_id = ttrss_feeds.id AND"; } else { $from_qpart = "ttrss_entries,ttrss_user_entries{$ext_tables_part}\n\t\t\t\t\t\tLEFT JOIN ttrss_feeds ON (feed_id = ttrss_feeds.id)"; } $query = "SELECT DISTINCT \n\t\t\t\t\t\tguid,\n\t\t\t\t\t\tttrss_entries.id,ttrss_entries.title,\n\t\t\t\t\t\tupdated,\n\t\t\t\t\t\tnote,\n\t\t\t\t\t\tunread,feed_id,marked,published,link,last_read,orig_feed_id,\n\t\t\t\t\t\t" . SUBSTRING_FOR_DATE . "(last_read,1,19) as last_read_noms,\n\t\t\t\t\t\t{$vfeed_query_part}\n\t\t\t\t\t\t{$content_query_part}\n\t\t\t\t\t\t" . SUBSTRING_FOR_DATE . "(updated,1,19) as updated_noms,\n\t\t\t\t\t\tauthor,score\n\t\t\t\t\tFROM\n\t\t\t\t\t\t{$from_qpart}\n\t\t\t\t\tWHERE\n\t\t\t\t\t{$group_limit_part}\n\t\t\t\t\t{$feed_check_qpart}\n\t\t\t\t\tttrss_user_entries.ref_id = ttrss_entries.id AND\n\t\t\t\t\tttrss_user_entries.owner_uid = '{$owner_uid}' AND\n\t\t\t\t\t{$search_query_part}\n\t\t\t\t\t{$view_query_part}\n\t\t\t\t\t{$query_strategy_part} ORDER BY {$order_by}\n\t\t\t\t\t{$limit_query_part} {$offset_query_part}"; if ($_REQUEST["debug"]) { print $query; } $result = db_query($link, $query); } else { // browsing by tag $feed_kind = "Tags"; $result = db_query($link, "SELECT\n\t\t\t\t\tguid,\n\t\t\t\t\tnote,\n\t\t\t\t\tttrss_entries.id as id,title,\n\t\t\t\t\tupdated,\n\t\t\t\t\tunread,feed_id,orig_feed_id,\n\t\t\t\t\tmarked,link,last_read,\t\t\t\t\n\t\t\t\t\t" . SUBSTRING_FOR_DATE . "(last_read,1,19) as last_read_noms,\n\t\t\t\t\t{$vfeed_query_part}\n\t\t\t\t\t{$content_query_part}\n\t\t\t\t\t" . SUBSTRING_FOR_DATE . "(updated,1,19) as updated_noms,\n\t\t\t\t\tscore\n\t\t\t\t\tFROM\n\t\t\t\t\t\tttrss_entries,ttrss_user_entries,ttrss_tags\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tref_id = ttrss_entries.id AND \n\t\t\t\t\t\tttrss_user_entries.owner_uid = '{$owner_uid}' AND\n\t\t\t\t\t\tpost_int_id = int_id AND tag_name = '{$feed}' AND\n\t\t\t\t\t\t{$view_query_part}\n\t\t\t\t\t\t{$search_query_part}\n\t\t\t\t\t\t{$query_strategy_part} ORDER BY {$order_by}\n\t\t\t\t\t{$limit_query_part}"); } return array($result, $feed_title, $feed_site_url, $last_error); }
<?php include_once $g['dir_module_skin'] . '_menu.php'; $sort = $sort ? $sort : 'gid'; $orderby = $orderby ? $orderby : 'asc'; $recnum = $recnum && $recnum < 200 ? $recnum : $d['search']['s_num2']; $bbsque = 'site=' . $s . " and type=2 and ext='jpg' and d_regis > " . $d['search']['date']; $bbsque .= getSearchSql('name|caption', $keyword, $ikeyword, 'or'); $RCD = getDbArray($table['s_upload'], $bbsque, '*', $sort, $orderby, $recnum, $p); $NUM = getDbRows($table['s_upload'], $bbsque); $TPG = getTotalPage($NUM, $recnum); ?> <?php if ($NUM) { ?> <div id="s_image"> <div class="subtitle"> <div class="xleft">이미지(검색결과 <?php echo number_format($NUM); ?> 개)</div> <div class="xright"><a href="<?php echo $g['url_reset']; ?> ">통합검색</a></div> <div class="clear"></div> </div>
<?php include $g['path_module'] . $module . '/var/var.php'; $bbs_time = $d['bbs']['time']; // 아래 $d 배열과 충돌을 피하기 위해서 별도로 지정 $sort = $sort ? $sort : 'gid'; $orderby = $orderby ? $orderby : 'asc'; $recnum = $recnum && $recnum < 301 ? $recnum : 30; $bbsque = 'uid'; if ($where && $keyw) { if (strstr('[id]', $where)) { $bbsque .= " and " . $where . "='" . $keyw . "'"; } else { $bbsque .= getSearchSql($where, $keyw, $ikeyword, 'or'); } } $RCD = getDbArray($table[$module . 'list'], $bbsque, '*', $sort, $orderby, $recnum, $p); $NUM = getDbRows($table[$module . 'list'], $bbsque); $TPG = getTotalPage($NUM, $recnum); $_LEVELNAME = array('l0' => '전체허용'); $_LEVELDATA = getDbArray($table['s_mbrlevel'], '', '*', 'uid', 'asc', 0, 1); while ($_L = db_fetch_array($_LEVELDATA)) { $_LEVELNAME['l' . $_L['uid']] = $_L['name'] . ' 이상'; } ?> <div class="page-header"> <h4>게시판 전체현황 <a href="<?php
<?php include_once $g['dir_module_skin'] . '_menu.php'; $sort = $sort ? $sort : 'gid'; $orderby = $orderby ? $orderby : 'asc'; $recnum = $recnum && $recnum < 200 ? $recnum : $d['search']['s_num2']; $bbsque = 'site=' . $s . ' and display=1 and d_regis > ' . $d['search']['date']; if ($bbsuid) { $bbsque .= ' and bbs=' . $bbsuid; } $bbsque .= getSearchSql('subject|tag', $keyword, $ikeyword, 'or'); $RCD = getDbArray($table['bbsdata'], $bbsque, '*', $sort, $orderby, $recnum, $p); $NUM = getDbRows($table['bbsdata'], $bbsque); $TPG = getTotalPage($NUM, $recnum); ?> <div id="s_post"> <div class="subtitle"> <div class="xleft"> <select onchange="goHref('<?php echo $g['url_reset']; ?> post&bbsuid='+this.value);"> <option value=""> + 게시판(전체)</option> <option value="">---------------------</option> <?php echo $_BBS = getDbArray($table['bbslist'], '', '*', 'gid', 'asc', 0, 1); ?> <?php
while ($_R = db_fetch_array($TCD)) { $RCD[] = getDbData($table[$m . 'data'], 'gid=' . $_R['gid'], '*'); } } else { if ($cat) { $bbsque2 .= " and category='" . $cat . "'"; } if ($where && $keyword) { if (strpos('[name][nic][id][ip]', $where)) { $bbsque2 .= " and " . $where . "='" . $keyword . "'"; } else { if ($where == 'term') { $bbsque2 .= " and d_regis like '" . $keyword . "%'"; } else { $keyword = str_replace('_', '#_', $keyword); $bbsque2 .= getSearchSql($where, $keyword, $ikeyword, "escape '#' or"); } } } $NUM = getDbRows($table[$m . 'data'], $bbsque2); $recnum = 15; $TCD = getDbArray($table[$m . 'data'], $bbsque2, '*', $sort, $orderby, $recnum, $p); // echo $table[$m.'data'] . '-' . $bbsque2; $today = date('Y-m-d'); $todayArray = explode("-", $today); $bbsque2 .= "and reservation_date >= " . date("Y-m-d", mktime(0, 0, 0, $todayArray[1], $todayArray[2] - 1, $todayArray[0])); $TCD2 = getDbArray($table[$m . 'data'], $bbsque2, '*', $sort, $orderby, 1000, 1); // echo $table[$m.'data'] . '-' . $bbsque2; while ($_R = db_fetch_array($TCD)) { $RCD[] = $_R; }
<div class="clear"></div> </div> </div> <?php } } ?> <!-- //이미지 --> <!-- 첨부파일 --> <?php if ($d['search']['s_upload']) { $_searchsql = getSearchSql('name|caption', $keyword, $ikeyword, 'or'); $RCD = getDbArray($table['s_upload'], 'site=' . $s . " and type<>2 and hidden=0 and d_regis > " . $d['search']['date'] . $_searchsql, '*', 'gid', 'asc', $recnum, $p); $NUM = getDbRows($table['s_upload'], 'site=' . $s . " and type<>2 and hidden=0 and d_regis > " . $d['search']['date'] . $_searchsql); if ($NUM) { $result = true; ?> <div id="s_upload"> <div class="subtitle"> <div class="xleft">첨부파일(검색결과 <?php echo number_format($NUM); ?> 개)</div> <div class="xright"><?php if ($NUM > $recnum) { ?>
<?php include_once $g['dir_module_skin'] . '_menu.php'; $sort = $sort ? $sort : 'uid'; $orderby = $orderby ? $orderby : 'asc'; $recnum = $recnum && $recnum < 200 ? $recnum : $d['search']['s_num2']; $bbsque = 'site=' . $s . ' and display=1 and d_regis > ' . $d['search']['date']; $bbsque .= getSearchSql('subject|content', $keyword, $ikeyword, 'or'); $RCD = getDbArray($table['s_comment'], $bbsque, '*', $sort, $orderby, $recnum, $p); $NUM = getDbRows($table['s_comment'], $bbsque); $TPG = getTotalPage($NUM, $recnum); ?> <?php if ($NUM) { ?> <div id="s_comment"> <div class="subtitle"> <div class="xleft">댓글(검색결과 <?php echo number_format($NUM); ?> 개)</div> <div class="xright"><a href="<?php echo $g['url_reset']; ?> ">통합검색</a></div> <div class="clear"></div> </div>
function LIB_getSearchSql($w, $k, $ik, $h) { if ($k == ',' || !$k && $h == 'not') { return ''; } $k = $k ? urldecode($k) : ''; $ik = $ik ? urldecode($ik) : ''; $h = $h ? $h : 'or'; $k = str_replace(' ', ',', $k); $karr = explode(',', $k); $knm = count($karr); $result = ' and ('; if ($h == 'not') { $h = 'and'; if (strstr($w, '|')) { $warr = explode('|', $w); $wnm = count($warr); for ($j = 0; $j < $knm; $j++) { if (!$karr[$j]) { continue; } for ($i = 0; $i < $wnm; $i++) { if (strlen($karr[$j]) > 2) { $result .= $warr[$i] . "<>'" . $karr[$j] . "' " . $h . ' '; } } } } else { for ($i = 0; $i < $knm; $i++) { if (strlen($karr[$i]) > 2) { $result .= $w . "<>'" . $karr[$i] . "' " . $h . ' '; } } } } else { if (strstr($w, '|')) { $warr = explode('|', $w); $wnm = count($warr); for ($j = 0; $j < $knm; $j++) { if (!$karr[$j]) { continue; } for ($i = 0; $i < $wnm; $i++) { if (strlen($karr[$j]) > 2) { $result .= $warr[$i] . " like '%" . $karr[$j] . "%' " . $h . ' '; } } } } else { for ($i = 0; $i < $knm; $i++) { if (strlen($karr[$i]) > 2) { $result .= $w . " like '%" . $karr[$i] . "%' " . $h . ' '; } } } } $result = substr($result, 0, strlen($result) - 4) . ')'; if ($ik) { $result .= getSearchSql($w, $ik, '', $h); } return $result; }
************************************************************** 아래의 예제는 실제로 페이지를 검색하는 샘플입니다. 페이징,더보기,검색결과 없을경우 안내등은 모두 자동으로 처리되니 결과 리스트만 출력해 주시면 됩니다. 최초 설치시 "이용약관" 이나 "개인정보" 로 검색하시면 결과값을 얻으실 수 있습니다. **************************************************************/ ?> <?php $sqlque = 'uid'; $sqlque .= getSearchSql('id|name', $keyword, '', 'or'); // 페이지코드와 페이지명 검색 if ($_iscallpage) { $RCD = getDbArray($table['s_page'], $sqlque, '*', 'uid', $orderby, $d['search']['num' . ($swhere == 'all' ? 1 : 2)], $p); ?> <div id="rb-search-search-example1"> <ol> <?php while ($_R = db_fetch_array($RCD)) { ?> <li><a href="<?php echo $g['s']; ?> /?r=<?php