Exemple #1
0
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();
    }
}
Exemple #2
0
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>';
            }
        }
    }
}