Compare commits

...

2 commits

Author SHA1 Message Date
n1rwana
ee0dd8c749
fix(away.php): fix link checking (#949)
* Фикс проверки заблокированных ссылок

* fix(away.php): syntax

---------

Co-authored-by: mrilyew <99399973+mrilyew@users.noreply.github.com>
Co-authored-by: veselcraft <veselcraft@icloud.com>
2025-02-16 16:47:48 +03:00
ayato
6d721eb8b9
fix(messagebox): make dialogue content scrollable and remove height from dialogue header and action boxes (#1230)
Sometimes dialogue boxes get too long and end up going off the screen, making the content impossible to see. This change fixes that by allowing the dialogue content to scroll. It also removes some height restrictions from the header and action sections since they didn’t seem to serve a clear purpose (to me) and might have been causing layout issues.
2025-02-16 16:21:46 +03:00
5 changed files with 15 additions and 15 deletions

View file

@ -43,7 +43,7 @@ class BannedLink extends RowModel
public function getRegexpRule(): string
{
return addslashes("/" . $this->getDomain() . $this->getRawRegexp() . "/");
return "/^" . $this->getDomain() . "\/" . $this->getRawRegexp() . "$/i";
}
public function getRawRegexp(): string

View file

@ -7,6 +7,7 @@ namespace openvk\Web\Models\Repositories;
use Chandler\Database\DatabaseConnection as DB;
use Nette\Database\Table\{ActiveRow, Selection};
use openvk\Web\Models\Entities\BannedLink;
use function Symfony\Component\Translation\t;
class BannedLinks
{
@ -48,7 +49,7 @@ class BannedLinks
public function isDomainBanned(string $domain): bool
{
return sizeof($this->bannedLinks->where(["link" => $domain, "regexp_rule" => ""])) > 0;
return sizeof($this->bannedLinks->where(["domain" => $domain, "regexp_rule" => ""])) > 0;
}
public function genLinks($rules): \Traversable
@ -61,16 +62,17 @@ class BannedLinks
public function genEntries($links, $uri): \Traversable
{
foreach ($links as $link) {
if (preg_match($link->getRegexpRule(), $uri)) {
if (preg_match($link->getRegexpRule(), $uri))
yield $link->getId();
else if ($this->isDomainBanned($link->getDomain()))
yield $link->getId();
}
}
}
public function check(string $url): ?array
{
$uri = strstr(str_replace(["https://", "http://"], "", $url), "/", true);
$domain = str_replace("www.", "", $uri);
$uri = str_replace(["https://", "http://"], "", $url);
$domain = explode("/", str_replace("www.", "", $uri))[0];
$rules = $this->getByDomain($domain);
if (is_null($rules)) {

View file

@ -515,7 +515,7 @@ final class AdminPresenter extends OpenVKPresenter
if ($link) {
$link->setDomain($new_domain ?? $this->postParam("link"));
$link->setReason($new_reason);
$link->setRegexp_rule($this->postParam("regexp"));
$link->setRegexp_rule(mb_strlen(trim($this->postParam("regexp"))) > 0 ? $this->postParam("regexp") : "");
$link->save();
} else {
if (!$new_domain) {
@ -525,7 +525,7 @@ final class AdminPresenter extends OpenVKPresenter
$link = new BannedLink();
$link->setDomain($new_domain);
$link->setReason($new_reason);
$link->setRegexp_rule($this->postParam("regexp"));
$link->setRegexp_rule(mb_strlen(trim($this->postParam("regexp"))) > 0 ? $this->postParam("regexp") : "");
$link->setInitiator($this->user->identity->getId());
$link->save();

View file

@ -11,12 +11,10 @@ final class AwayPresenter extends OpenVKPresenter
{
public function renderAway(): void
{
$checkBanEntries = (new BannedLinks())->check($this->queryParam("to") . "/");
if (OPENVK_ROOT_CONF["openvk"]["preferences"]["susLinks"]["warnings"]) {
if (sizeof($checkBanEntries) > 0) {
$checkBanEntries = (new BannedLinks)->check($this->queryParam("to"));
if (OPENVK_ROOT_CONF["openvk"]["preferences"]["susLinks"]["warnings"])
if (sizeof($checkBanEntries) > 0)
$this->pass("openvk!Away->view", $checkBanEntries[0]);
}
}
header("HTTP/1.0 302 Found");
header("X-Robots-Tag: noindex, nofollow, noarchive");

View file

@ -38,7 +38,6 @@ body.dimmed > .dimmer #absolute_territory {
}
.ovk-diag-head {
height: 25%;
padding: 5px;
background-color: #757575;
border-bottom: 1px solid #3e3e3e;
@ -49,11 +48,12 @@ body.dimmed > .dimmer #absolute_territory {
.ovk-diag-body {
padding: 20px;
overflow-y: auto;
max-height: 80vh
}
.ovk-diag-action {
padding: 10px;
height: 25%;
background-color: #d4d4d4;
text-align: right;
}