private function eventGetArticle($item) { global $_LANG; $item_id = $item['id']; $tag_arr = explode(', ', cmsTagLine('content', $item_id, false)); $id_target = array(); // Получаем id назначения таких же тегов, не более пяти на каждый foreach ($tag_arr as $tag) { $sql = "SELECT item_id FROM cms_tags WHERE tag = '$tag' AND item_id<>'$item_id' AND target='content' LIMIT 5"; $rs = cmsCore::c('db')->query($sql) ; if (cmsCore::c('db')->num_rows($rs)) { while ($tagitem = cmsCore::c('db')->fetch_assoc($rs)) { $id_target[]= $tagitem['item_id']; } } } if (count($id_target)) { $id_target = array_unique($id_target); $id_target = array_slice($id_target, 0, $this->config['P_LIMIT']); if ($this->config['P_UNSORT']) { shuffle($id_target); } $morecontent = ''; foreach ($id_target as $n) { $con = cmsTagItemLink('content', $n); if ($con) { $morecontent .= '<p>'. $con ."</p>"; } } if ($morecontent) { $item['content'] .= '<h4>'. $_LANG['P_SIMILAR_ARTICLES'] .':</h4>'. $morecontent; } } return $item; }
/** * Получает массив результатов поиска (постранично) для тегов * @return array $rs */ public function searchByTag() { $sql = "SELECT * FROM cms_tags WHERE tag = '". cmsCore::c('db')->escape_string($this->query) ."' ORDER BY tag DESC LIMIT ". (($this->page-1)*$this->config['perpage']) .", ". $this->config['perpage']; $result = cmsCore::c('db')->query($sql); if (!cmsCore::c('db')->num_rows($result)) { return false; } $rs = array(); $row = 1; while ($res = cmsCore::c('db')->fetch_assoc($result)) { if ($itemlink = cmsTagItemLink($res['target'], $res['item_id'])) { $res['itemlink'] = $itemlink; $res['tag_bar'] = cmsTagBar($res['target'], $res['item_id'], $this->query); if($row % 2 == 0) { $res['class'] = 'search_row2'; } else { $res['class'] = 'search_row1'; } $rs[] = $res; $row++; } } return $rs; }
/** * Получает массив результатов поиска (постранично) для тегов * @return array $rs */ public function searchByTag() { $sql = "SELECT *\n FROM cms_tags\n WHERE tag = '{$this->query}' ORDER BY tag DESC LIMIT " . ($this->page - 1) * $this->config['perpage'] . ", {$this->config['perpage']}"; $result = $this->inDB->query($sql); if (!$this->inDB->num_rows($result)) { return false; } $rs = array(); $row = 1; while ($res = $this->inDB->fetch_assoc($result)) { if ($itemlink = cmsTagItemLink($res['target'], $res['item_id'])) { $res['itemlink'] = $itemlink; $res['tag_bar'] = cmsTagBar($res['target'], $res['item_id'], $this->query); if ($row % 2 == 0) { $res['class'] = 'search_row2'; } else { $res['class'] = 'search_row1'; } $rs[] = $res; $row++; } } return $rs; }