Compare commits

..

3 commits

Author SHA1 Message Date
31db422578
Merge f672e5001a into ee0dd8c749 2025-02-19 21:55:07 +03:00
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 public function getRegexpRule(): string
{ {
return addslashes("/" . $this->getDomain() . $this->getRawRegexp() . "/"); return "/^" . $this->getDomain() . "\/" . $this->getRawRegexp() . "$/i";
} }
public function getRawRegexp(): string public function getRawRegexp(): string

View file

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

View file

@ -515,7 +515,7 @@ final class AdminPresenter extends OpenVKPresenter
if ($link) { if ($link) {
$link->setDomain($new_domain ?? $this->postParam("link")); $link->setDomain($new_domain ?? $this->postParam("link"));
$link->setReason($new_reason); $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(); $link->save();
} else { } else {
if (!$new_domain) { if (!$new_domain) {
@ -525,7 +525,7 @@ final class AdminPresenter extends OpenVKPresenter
$link = new BannedLink(); $link = new BannedLink();
$link->setDomain($new_domain); $link->setDomain($new_domain);
$link->setReason($new_reason); $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->setInitiator($this->user->identity->getId());
$link->save(); $link->save();

View file

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

View file

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