function pathTree($id) { global $menu; static $indexes = array(); static $names = array(); if ($id != '0') { $id = new MongoId($id); $tempsearch = $menu->findOne(array('_id' => $id)); $lenght = count($names); $names[$lenght] = $tempsearch['name']; $newid = $tempsearch['toId']; $indexes[$lenght] = $tempsearch['_id']; pathTree($newid); } else { $max = count($names); for ($i = $max - 1; $i >= 0; $i--) { echo '/<a href="/?view=' . $indexes[$i] . '" target="_blank">' . $names[$i] . '</a>'; } $indexes = array(); $names = array(); } }
function view($GET, $POST) { global $menu, $docs, $cat, $users; if (isset($GET['view'])) { $view = (string) $GET['view']; if (strlen($view) != 24) { error404(); } else { $id = new MongoId($view); $search = $menu->findOne(array('_id' => $id)); if (!$search) { error404(); } else { $site = $search['site']; $curid = $search['_id']; echo '<div class="link-tree">'; echo '<a href="/?sys=' . $_COOKIE['site'] . '" target="_blank">' . $_COOKIE['site'] . '</a>'; pathTree($curid); echo '</div>'; $userId = $_COOKIE['login']; $userId = new MongoId($userId); $login = $users->findOne(array('_id' => $userId)); $sites = explode(" @", $login['access']); if (in_array($site, $sites) && empty($_COOKIE[md5("role")]) || !empty($_COOKIE[md5("role")])) { $doc = $docs->find(array('itemId' => $id)); $target_dir = "documents/"; echo '<div class="post-content">'; echo '<h2 class="blog-title" style="margin-bottom: 0;">' . htmlspecialchars($search['name']) . '</h2>'; if (isset($search['text']) && $search['text'] != '') { echo '<div class="text">' . preg_replace('#<br.*?>#s', '', $search['text']) . '</div><br>'; } if ($doc->count(true)) { foreach ($doc as $file) { $path = 'documents/' . $search['site'] . '_' . $file['name'] . '.' . $file['ext']; if (file_exists($path)) { echo '<div class="file">Файл: <a href="documents/' . $search['site'] . '_' . $file['name'] . '.' . $file['ext'] . '" target="_blank">' . $file['name'] . '</a></div><br>'; } } } $links = $menu->find(array('toId' => $id))->sort(array($_COOKIE['sortindex'] => 1)); if ($_COOKIE['sortindex'] == 'time') { $links = $menu->find(array('toId' => $id))->sort(array($_COOKIE['sortindex'] => -1)); } if ($links->count(true)) { foreach ($links as $key) { echo '<div>'; echo '<div class="spoiler">'; echo '<a href="" class="spoiler_links">' . $key['name'] . '</a><div class="date">' . date('d/m/Y', $key['time']) . '</div>'; echo '<div class="spoiler_body">'; if (isset($key['text']) && $key['text'] != '') { echo '<div class="text">' . $key['text'] . '</div><br>'; } $docSP = $docs->find(array('itemId' => $key['_id'])); if ($docSP->count(true)) { foreach ($docSP as $file) { $path = 'documents/' . $search['site'] . '_' . $file['name'] . '.' . $file['ext']; if (file_exists($path)) { echo '<div class="file">Файл: <a href="documents/' . $search['site'] . '_' . $file['name'] . '.' . $file['ext'] . '" target="_blank">' . $file['name'] . '</a></div><br>'; } } } echo 'Додано: ' . date('d/m/Y', $key['time']) . '<br><br>'; echo '<a href="/?view=' . $key['_id'] . '" target="_blank">Повне посилання</a><br><br>'; echo '</div>'; echo '</div>'; echo '</div>'; } } echo '<div class="post-footer">'; echo 'Додано: ' . date('d/m/Y', $search['time']); echo '</div>'; echo '</div>'; if ($site != $cat) { setcookie("site", $site); header("Location: index.php?view={$view}"); } } else { accessDenied(); } } } } if (isset($POST['search'])) { $string = trim($POST['search']); header("Location: /?search={$string}"); } if (isset($GET['search'])) { $string = (string) $GET['search']; $arrWord = explode(" ", $string); foreach ($arrWord as $word) { $regex = new MongoRegex("/{$word}/i"); $criteria = array('$and' => array(array('$or' => array(array('name' => array('$regex' => $regex)), array('text' => array('$regex' => $regex)))), array('site' => $cat))); $data = $menu->find($criteria)->sort(array($_COOKIE['sortindex'] => 1)); if ($_COOKIE['sortindex'] == 'time') { $data = $menu->find($criteria)->sort(array($_COOKIE['sortindex'] => -1)); } echo 'Результати пошуку: "' . $word . '"<br><br>'; if ($data->count(true)) { echo '<div class="post-content">'; foreach ($data as $search) { $curid = $search['toId']; if ($curid != 0) { $curid = new MongoId($curid); $tempsearch = $menu->find(array('_id' => $curid)); if ($tempsearch->count(true)) { echo '<div class="search-link-border">'; echo '<div class="search-title""><a href="/?view=' . $search['_id'] . '" target="_blank">' . htmlspecialchars($search['name']) . '</a></div><div class="date">' . date('d/m/Y', $search['time']) . '</div><br>'; echo '<div class="search-link-tree">'; pathTree($search['_id']); echo '</div>'; echo '</div>'; } } else { echo '<div class="search-link-border">'; echo '<div class="search-title""><a href="/?view=' . $search['_id'] . '" target="_blank">' . htmlspecialchars($search['name']) . '</a></div><div class="date">' . date('d/m/Y', $search['time']) . '</div><br>'; echo '<div class="search-link-tree">'; pathTree($search['_id']); echo '</div>'; echo '</div>'; } } echo '</div>'; } else { echo '<div class="post-content">'; echo 'Записів не знайдено</div>'; } } } }