34) { $tx = preg_replace('/[^a-zA-Z0-9]+/', '', $q[1]); } else { $page = (int) $q[1]; } } if (isset($q[2])) { if ($q[2] == 'rss') { $rss = true; } else if (strlen($q[2]) == 34) { $ns = preg_replace('/[^a-zA-Z0-9]+/', '', $q[2]); } else { $page = (int) $q[2]; } } } if ($page > 0) { $limit = PAGE_LIMIT * $page - PAGE_LIMIT; } else { $limit = PAGE_LIMIT * $page; } $db = new SQLite(DB_NAME, DB_USERNAME, DB_PASSWORD); if ($ns) { $namespaceHash = $ns; $namespaceValue = $db->getNamespaceValueByNS($ns); } else if ($tx) { $namespaceHash = $db->getNamespaceHashByTX($tx); $namespaceValue = $db->getNamespaceValueByNS($namespaceHash); } else { $namespaceHash = false; $namespaceValue = false; } $trends = []; if (TRENDS_ENABLED) { foreach ($db->getTrends(time() - TRENDS_SECONDS_OFFSET) as $value) { foreach ((array) explode(' ', strip_tags(html_entity_decode(nl2br(trim($value['key']))))) as $trend) { if (strlen($trend) >= TRENDS_MIN_LENGHT) { $trend = strtolower($trend); if (isset($trends[$trend])) { $trends[$trend]++; } else { $trends[$trend] = 1; } } } foreach ((array) explode(' ', strip_tags(html_entity_decode(nl2br(trim($value['value']))))) as $trend) { if (strlen($trend) >= TRENDS_MIN_LENGHT) { $trend = strtolower($trend); if (isset($trends[$trend])) { $trends[$trend]++; } else { $trends[$trend] = 1; } } } } arsort($trends); $trends = array_slice($trends, 0, TRENDS_LIMIT); $trends = array_flip($trends); } $data = []; foreach ($db->getData($ns, $tx, $query, $limit, PAGE_LIMIT) as $value) { $data[] = [ 'namehash' => $value['namehash'], 'block' => $value['block'], 'txid' => $value['txid'], 'time' => date(($rss ? 'r' : 'd-m-Y H:i'), $value['time']), 'key' => $rss ? htmlentities(strip_tags(trim($value['key'])), ENT_XML1) : nl2br(trim($value['key'])), 'value' => $rss ? htmlentities(strip_tags(trim($value['value'])), ENT_XML1): nl2br(trim($value['value'])), ]; } $older = false; $newer = false; if (!in_array($page, [0, 1])) { if ($page == 2) { $newer = ($ns ? $ns : ''); } else { $newer = ($ns ? $ns . '/' . ($page - 1) : ($page - 1)); } if ($query) { $newer = $newer . '?q=' . $query; } } if ($data) { if (in_array($page, [0, 1])) { $older = ($ns ? $ns . '/2' : '2'); } else { $older = ($ns ? $ns . '/' . ($page + 1) : ($page + 1)); } if ($query) { $older = $older . '?q=' . $query; } } if ($ns) { if ($page) { $hrefThisPage = $ns . '/' . $page; } else { $hrefThisPage = $ns; } } else { if ($page) { $hrefThisPage = $page; } else { $hrefThisPage = ''; } } if ($rss) { header('Content-type: application/xml'); require_once('rss.phtml'); } else { require_once('index.phtml'); }