diff --git a/VKAPI/Handlers/Account.php b/VKAPI/Handlers/Account.php index dd6cfa7b..a20c42be 100644 --- a/VKAPI/Handlers/Account.php +++ b/VKAPI/Handlers/Account.php @@ -66,6 +66,8 @@ final class Account extends VKAPIRequestHandler function getCounters(string $filter = ""): object { + $this->requireUser(); + return (object) [ "friends" => $this->getUser()->getFollowersCount(), "notifications" => $this->getUser()->getNotificationsCount(), diff --git a/VKAPI/Handlers/Likes.php b/VKAPI/Handlers/Likes.php index 644646e5..9501b433 100644 --- a/VKAPI/Handlers/Likes.php +++ b/VKAPI/Handlers/Likes.php @@ -54,11 +54,7 @@ final class Likes extends VKAPIRequestHandler case "post": $user = (new UsersRepo)->get($user_id); if (is_null($user)) - return (object) [ - "liked" => 0, - "copied" => 0, - "sex" => 0 - ]; + $this->fail(100, "One of the parameters specified was missing or invalid: user not found"); $post = (new PostsRepo)->getPostById($owner_id, $item_id); if (is_null($post)) diff --git a/VKAPI/Handlers/Newsfeed.php b/VKAPI/Handlers/Newsfeed.php index 16bd3123..d9992430 100644 --- a/VKAPI/Handlers/Newsfeed.php +++ b/VKAPI/Handlers/Newsfeed.php @@ -7,7 +7,7 @@ use openvk\VKAPI\Handlers\Wall; final class Newsfeed extends VKAPIRequestHandler { - function get(string $fields = "", int $start_from = 0, int $offset = 0, int $count = 30, int $extended = 0, int $forGodSakePleaseDoNotReportAboutMyOnlineActivity = 0) + function get(string $fields = "", int $start_from = 0, int $start_time = 0, int $end_time = 0, int $offset = 0, int $count = 30, int $extended = 0, int $forGodSakePleaseDoNotReportAboutMyOnlineActivity = 0) { $this->requireUser(); @@ -33,6 +33,8 @@ final class Newsfeed extends VKAPIRequestHandler ->where("wall IN (?)", $ids) ->where("deleted", 0) ->where("id < (?)", empty($start_from) ? PHP_INT_MAX : $start_from) + ->where("? <= created", empty($start_time) ? 0 : $start_time) + ->where("? >= created", empty($end_time) ? PHP_INT_MAX : $end_time) ->order("created DESC"); $rposts = []; @@ -45,7 +47,7 @@ final class Newsfeed extends VKAPIRequestHandler return $response; } - function getGlobal(string $fields = "", int $start_from = 0, int $offset = 0, int $count = 30, int $extended = 0) + function getGlobal(string $fields = "", int $start_from = 0, int $start_time = 0, int $end_time = 0, int $offset = 0, int $count = 30, int $extended = 0) { $this->requireUser(); @@ -55,7 +57,9 @@ final class Newsfeed extends VKAPIRequestHandler $queryBase .= " AND `nsfw` = 0"; $start_from = empty($start_from) ? PHP_INT_MAX : $start_from; - $posts = DatabaseConnection::i()->getConnection()->query("SELECT `posts`.`id` " . $queryBase . " AND `posts`.`id` < " . $start_from . " ORDER BY `created` DESC LIMIT " . $count . " OFFSET " . $offset); + $start_time = empty($start_time) ? 0 : $start_time; + $end_time = empty($end_time) ? PHP_INT_MAX : $end_time; + $posts = DatabaseConnection::i()->getConnection()->query("SELECT `posts`.`id` " . $queryBase . " AND `posts`.`id` <= " . $start_from . " AND " . $start_time . " <= `posts`.`created` AND `posts`.`created` <= " . $end_time . " ORDER BY `created` DESC LIMIT " . $count . " OFFSET " . $offset); $rposts = []; $ids = []; diff --git a/VKAPI/Handlers/Polls.php b/VKAPI/Handlers/Polls.php index 9036a02c..be947a44 100755 --- a/VKAPI/Handlers/Polls.php +++ b/VKAPI/Handlers/Polls.php @@ -75,7 +75,7 @@ final class Polls extends VKAPIRequestHandler try { $poll->vote($this->getUser(), explode(",", $answers_ids)); - return 0; + return 1; } catch(AlreadyVotedException $ex) { return 0; } catch(PollLockedException $ex) { @@ -97,7 +97,7 @@ final class Polls extends VKAPIRequestHandler try { $poll->revokeVote($this->getUser()); - return 0; + return 1; } catch(PollLockedException $ex) { $this->fail(15, "Access denied: Poll is locked or isn't revotable"); } catch(InvalidOptionException $ex) { diff --git a/Web/Models/Entities/Video.php b/Web/Models/Entities/Video.php index bddb00a4..45320efc 100644 --- a/Web/Models/Entities/Video.php +++ b/Web/Models/Entities/Video.php @@ -197,6 +197,9 @@ class Video extends Media static function fastMake(int $owner, string $name = "Unnamed Video.ogv", string $description = "", array $file, bool $unlisted = true, bool $anon = false): Video { + if(OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading']) + exit(VIDEOS_FRIENDLY_ERROR); + $video = new Video; $video->setOwner($owner); $video->setName(ovk_proc_strtr($name, 61)); diff --git a/Web/Presenters/AuthPresenter.php b/Web/Presenters/AuthPresenter.php index bbb45d28..2f178900 100644 --- a/Web/Presenters/AuthPresenter.php +++ b/Web/Presenters/AuthPresenter.php @@ -207,6 +207,9 @@ final class AuthPresenter extends OpenVKPresenter function renderFinishRestoringPassword(): void { + if(OPENVK_ROOT_CONF['openvk']['preferences']['security']['disablePasswordRestoring']) + $this->notFound(); + $request = $this->restores->getByToken(str_replace(" ", "+", $this->queryParam("key"))); if(!$request || !$request->isStillValid()) { $this->flash("err", tr("token_manipulation_error"), tr("token_manipulation_error_comment")); @@ -241,6 +244,9 @@ final class AuthPresenter extends OpenVKPresenter function renderRestore(): void { + if(OPENVK_ROOT_CONF['openvk']['preferences']['security']['disablePasswordRestoring']) + $this->notFound(); + if(!is_null($this->user)) $this->redirect($this->user->identity->getURL()); diff --git a/Web/Presenters/CommentPresenter.php b/Web/Presenters/CommentPresenter.php index 93d2a816..dad79ac4 100644 --- a/Web/Presenters/CommentPresenter.php +++ b/Web/Presenters/CommentPresenter.php @@ -47,6 +47,9 @@ final class CommentPresenter extends OpenVKPresenter $club = (new Clubs)->get(abs($entity->getTargetWall())); else if($entity instanceof Topic) $club = $entity->getClub(); + + if($_FILES["_vid_attachment"] && OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading']) + $this->flashFail("err", tr("error"), "Video uploads are disabled by the system administrator."); $flags = 0; if($this->postParam("as_group") === "on" && !is_null($club) && $club->canBeModifiedBy($this->user->identity)) diff --git a/Web/Presenters/TopicsPresenter.php b/Web/Presenters/TopicsPresenter.php index e081382a..e7b08ac3 100644 --- a/Web/Presenters/TopicsPresenter.php +++ b/Web/Presenters/TopicsPresenter.php @@ -84,6 +84,9 @@ final class TopicsPresenter extends OpenVKPresenter if($this->postParam("as_group") === "on" && $club->canBeModifiedBy($this->user->identity)) $flags |= 0b10000000; + if($_FILES["_vid_attachment"] && OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading']) + $this->flashFail("err", tr("error"), "Video uploads are disabled by the system administrator."); + $topic = new Topic; $topic->setGroup($club->getId()); $topic->setOwner($this->user->id); diff --git a/Web/Presenters/VideosPresenter.php b/Web/Presenters/VideosPresenter.php index 6db7771d..4e4d484a 100644 --- a/Web/Presenters/VideosPresenter.php +++ b/Web/Presenters/VideosPresenter.php @@ -56,6 +56,9 @@ final class VideosPresenter extends OpenVKPresenter { $this->assertUserLoggedIn(); $this->willExecuteWriteAction(); + + if(OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading']) + $this->flashFail("err", tr("error"), "Video uploads are disabled by the system administrator."); if($_SERVER["REQUEST_METHOD"] === "POST") { if(!empty($this->postParam("name"))) { diff --git a/Web/Presenters/WallPresenter.php b/Web/Presenters/WallPresenter.php index 5c9326db..6b9ec183 100644 --- a/Web/Presenters/WallPresenter.php +++ b/Web/Presenters/WallPresenter.php @@ -229,6 +229,9 @@ final class WallPresenter extends OpenVKPresenter if(!$canPost) $this->flashFail("err", tr("not_enough_permissions"), tr("not_enough_permissions_comment")); + if($_FILES["_vid_attachment"] && OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading']) + $this->flashFail("err", tr("error"), "Video uploads are disabled by the system administrator."); + $anon = OPENVK_ROOT_CONF["openvk"]["preferences"]["wall"]["anonymousPosting"]["enable"]; if($wallOwner instanceof Club && $this->postParam("as_group") === "on" && $this->postParam("force_sign") !== "on" && $anon) { $manager = $wallOwner->getManager($this->user->identity); diff --git a/Web/Presenters/templates/@layout.xml b/Web/Presenters/templates/@layout.xml index 48c2b839..fcbf4f63 100644 --- a/Web/Presenters/templates/@layout.xml +++ b/Web/Presenters/templates/@layout.xml @@ -252,7 +252,7 @@

- {_forgot_password} + {if !OPENVK_ROOT_CONF['openvk']['preferences']['security']['disablePasswordRestoring']}{_forgot_password}{/if} {/ifset} diff --git a/Web/Presenters/templates/Auth/LoginSecondFactor.xml b/Web/Presenters/templates/Auth/LoginSecondFactor.xml index a1ba1ede..0db2a2a0 100644 --- a/Web/Presenters/templates/Auth/LoginSecondFactor.xml +++ b/Web/Presenters/templates/Auth/LoginSecondFactor.xml @@ -11,7 +11,7 @@ - {_two_factor_authentication_login} + {_two_factor_authentication_login} @@ -25,7 +25,7 @@ {_code}: - + diff --git a/Web/Presenters/templates/Auth/Register.xml b/Web/Presenters/templates/Auth/Register.xml index a279e930..23857633 100644 --- a/Web/Presenters/templates/Auth/Register.xml +++ b/Web/Presenters/templates/Auth/Register.xml @@ -101,14 +101,16 @@ - - - CAPTCHA: - - - {captcha_template()|noescape} - - + {if !(strpos(captcha_template(), 'verified'))} + + + CAPTCHA: + + + {captcha_template()|noescape} + + + {/if}
@@ -120,21 +122,18 @@
{else} -

{_registration_closed}

+

{_registration_closed}

diff --git a/Web/Presenters/templates/Group/View.xml b/Web/Presenters/templates/Group/View.xml index eb4f2608..bf392a9f 100644 --- a/Web/Presenters/templates/Group/View.xml +++ b/Web/Presenters/templates/Group/View.xml @@ -261,3 +261,7 @@ {/block} + +{block bodyScripts} + {script "js/al_despacito_wall.js"} +{/block} \ No newline at end of file diff --git a/Web/Presenters/templates/Topics/Create.xml b/Web/Presenters/templates/Topics/Create.xml index f68c4f6b..e018b26b 100644 --- a/Web/Presenters/templates/Topics/Create.xml +++ b/Web/Presenters/templates/Topics/Create.xml @@ -37,7 +37,7 @@ {_attachment}: (unknown) - +
@@ -49,7 +49,7 @@ {_attach_photo} - + {_attach_video} diff --git a/Web/Presenters/templates/User/View.xml b/Web/Presenters/templates/User/View.xml index a2783b21..9d84aee9 100644 --- a/Web/Presenters/templates/User/View.xml +++ b/Web/Presenters/templates/User/View.xml @@ -741,4 +741,9 @@ {else} {* isBanned() *} {include "banned.xml"} {/if} + +{/block} + +{block bodyScripts} + {script "js/al_despacito_wall.js"} {/block} \ No newline at end of file diff --git a/Web/Presenters/templates/Videos/List.xml b/Web/Presenters/templates/Videos/List.xml index f22553f4..4f811289 100644 --- a/Web/Presenters/templates/Videos/List.xml +++ b/Web/Presenters/templates/Videos/List.xml @@ -14,7 +14,7 @@
{tr("videos", $count)} - +  |  {_upload_video} diff --git a/Web/Presenters/templates/components/comments.xml b/Web/Presenters/templates/components/comments.xml index d84a0732..3290e35c 100644 --- a/Web/Presenters/templates/components/comments.xml +++ b/Web/Presenters/templates/components/comments.xml @@ -1,6 +1,6 @@

{_comments} ({$count})

-
+
{var $commentsURL = "/al_comments/create/$model/" . $parent->getId()} {var $club = $parent instanceof \openvk\Web\Models\Entities\Post && $parent->getTargetWall() < 0 ? (new openvk\Web\Models\Repositories\Clubs)->get(abs($parent->getTargetWall())) : $club} {if !$readOnly} diff --git a/Web/Presenters/templates/components/textArea.xml b/Web/Presenters/templates/components/textArea.xml index daa25f4c..5e51ff76 100644 --- a/Web/Presenters/templates/components/textArea.xml +++ b/Web/Presenters/templates/components/textArea.xml @@ -52,7 +52,7 @@
- + @@ -71,7 +71,7 @@ {_photo} - + {_video} diff --git a/Web/static/css/main.css b/Web/static/css/main.css index 09d625ba..6e592a9a 100644 --- a/Web/static/css/main.css +++ b/Web/static/css/main.css @@ -2462,4 +2462,21 @@ a.poll-retract-vote { .borderup { border-top:1px solid #E5E7E6; +} + +#standaloneCommentBox { + position: sticky; + top: 0; + background-color: #fff; + border-bottom: 1px dotted #8b8b8b; + z-index: 10; +} + +.page_content.overscrolled div[class$="_small_block"] { + position: absolute; + visibility: hidden; +} + +.page_content.overscrolled div[class$="_big_block"] { + width: unset; } \ No newline at end of file diff --git a/Web/static/js/al_despacito_wall.js b/Web/static/js/al_despacito_wall.js new file mode 100644 index 00000000..69f7d293 --- /dev/null +++ b/Web/static/js/al_despacito_wall.js @@ -0,0 +1,27 @@ +const contentPage = document.querySelector(".page_content"); +const rootElement = document.documentElement; + +let smallBlockObserver = new IntersectionObserver(entries => { + entries.forEach(x => { + window.requestAnimationFrame(() => { + let pastHeight = contentPage.getBoundingClientRect().height; + if(x.isIntersecting) + contentPage.classList.remove("overscrolled"); + else + contentPage.classList.add("overscrolled"); + + let currentHeight = contentPage.getBoundingClientRect().height; + let ratio = currentHeight / pastHeight; + + rootElement.scrollTop *= ratio; + }, contentPage); + }); +}, { + root: null, // screen + rootMargin: "0px", + threshold: 0 +}); + +let smol = document.querySelector('div[class$="_small_block"]'); +if(smol != null) + smallBlockObserver.observe(smol); \ No newline at end of file diff --git a/Web/static/js/player.js b/Web/static/js/player.js index b170606f..7465f023 100644 --- a/Web/static/js/player.js +++ b/Web/static/js/player.js @@ -181,6 +181,28 @@ function _bsdnEventListenerFactory(el, v) { click: [ () => el.querySelector(".bsdn_contextMenu").style.display = "none" ] }, + ".bsdn_copyVideoUrl": { + click: [ + async () => { + let videoUrl = el.querySelector(".bsdn_video > video").src; + let fallback = () => { + prompt("URL:", videoUrl); + }; + + if(typeof navigator.clipboard == "undefined") { + fallback(); + } else { + try { + await navigator.clipboard.writeText(videoUrl); + confirm("👍🏼"); + } catch(e) { + fallback(); + } + } + } + ] + }, + ".bsdn_video > video": { play: [ () => { diff --git a/locales/uk.strings b/locales/uk.strings index f0870f22..ee66bfed 100644 --- a/locales/uk.strings +++ b/locales/uk.strings @@ -159,6 +159,9 @@ "pinned" = "прикріплено"; "comments_tip" = "Будьте першим, хто залишить коментар!"; "your_comment" = "Ваш коментар"; +"auditory" = "Аудиторія"; +"in_wall" = "на стіну"; +"in_group" = "у групу"; "shown" = "Показано"; "x_out_of" = "$1 з"; "wall_zero" = "немає записів"; @@ -173,8 +176,8 @@ "all_news" = "Усі новини"; "posts_per_page" = "Кількість записів на сторінці"; "attachment" = "Вкладення"; -"post_as_group" = "Від імені суспільства"; -"comment_as_group" = "Від імені суспільства"; +"post_as_group" = "Від імені спільноти"; +"comment_as_group" = "Від імені спільноти"; "add_signature" = "Підпис автора"; "contains_nsfw" = "Містить NSFW-контент"; "nsfw_warning" = "Даний запис може містити контент 18+"; @@ -338,6 +341,30 @@ "albums_list_many" = "У Вас $1 альбомів"; "albums_list_other" = "У Вас $1 альбомів"; +"add_image" = "Встановити зображення"; +"add_image_group" = "Завантажити фотографію"; +"upload_new_picture" = "Завантажити нову фотографію"; +"uploading_new_image" = "Завантаження нової фотографії"; +"friends_avatar" = "Друзям буде простіше дізнатися Вас, якщо ви завантажите своє справжнє фото."; +"groups_avatar" = "Гарне фото зробить Вашу спільноту більш популярним."; +"formats_avatar" = "Ви можете завантажити зображення у форматі JPG, GIF або PNG."; +"troubles_avatar" = "Якщо виникають проблеми із завантаженням, спробуйте вибрати фотографію меншого розміру."; +"webcam_avatar" = "Якщо ваш комп'ютер оснащений веб-камерою, Ви можете зробити миттєву фотографію»"; + +"update_avatar_notification" = "Фотографію профілю оновлено"; +"update_avatar_description" = "Натисніть, щоб перейти до перегляду"; + +"deleting_avatar" = "Видалення фотографії"; +"deleting_avatar_sure" = "Ви дійсно хочете видалити аватар?"; + +"deleted_avatar_notification" = "Фотографію успішно видалено"; + +"save_changes" = "Зберегти зміни"; + +"upd_m" = "оновив фотографію на своїй сторінці"; +"upd_f" = "оновила фотографію на своїй сторінці"; +"upd_g" = "оновило фотографію групи"; + /* Notes */ "notes" = "Нотатки"; @@ -915,6 +942,7 @@ "error_upload_failed" = "Не вдалося завантажити фотографію"; "error_old_password" = "Старий пароль не збігається"; "error_new_password" = "Нові паролі не збігаються"; +"error_weak_password" = "Ненадійний пароль. Пароль має містити принаймні 8 символів: цифри, великі та малі літери"; "error_shorturl_incorrect" = "Коротка адреса має неправильний формат."; "error_repost_fail" = "Не вдалося поділитися записом"; "error_data_too_big" = "Атрибут '$1' не може бути довше $2 $3"; @@ -1079,7 +1107,7 @@ "about_wall_posts_few" = "$1 записи на стінах"; "about_wall_posts_many" = "$1 записів на стінах"; "about_wall_posts_other" = "$1 записів на стінах"; -"about_watch_rules" = "Дивіться тут."; +"about_watch_rules" = "Перегляньте тут."; /* Dialogs */ @@ -1096,6 +1124,7 @@ /* User alerts */ "user_alert_scam" = "На цей акаунт багато скаржилися у зв'язку з шахрайством. Будь ласка, будьте обережні, особливо якщо у вас попросять грошей."; +"user_may_not_reply" = "Цей користувач, ймовірно, не зможе відповісти Вам через Ваші налаштування приватності. Відкрити налаштування приватності"; /* Cookies pop-up */ diff --git a/openvk-example.yml b/openvk-example.yml index c0428283..e3fd1c3a 100644 --- a/openvk-example.yml +++ b/openvk-example.yml @@ -20,6 +20,8 @@ openvk: photos: upgradeStructure: false photoSaving: "quick" + videos: + disableUploading: false apps: withdrawTax: 8 security: @@ -28,6 +30,7 @@ openvk: forcePhoneVerification: false forceEmailVerification: false forceStrongPassword: false + disablePasswordRestoring: true # turn this off if you have configured e-mail sending correctly enableSu: true rateLimits: actions: 5 diff --git a/themepacks/midnight/res/backdrop-editor.gif b/themepacks/midnight/res/backdrop-editor.gif new file mode 100644 index 00000000..e4c8e770 Binary files /dev/null and b/themepacks/midnight/res/backdrop-editor.gif differ diff --git a/themepacks/midnight/stylesheet.css b/themepacks/midnight/stylesheet.css index 910d60bf..ca6b9ed8 100644 --- a/themepacks/midnight/stylesheet.css +++ b/themepacks/midnight/stylesheet.css @@ -6,7 +6,7 @@ html { color-scheme: dark !important; } -body, #backdropDripper { +body, #backdropDripper, #standaloneCommentBox { background-color: #0e0b1a; color: #c6d2e8; } @@ -35,7 +35,7 @@ span, .post-author .date, .crp-entry--message---text, .messenger-app--messages-- border-color: #1c202f; } -.accountInfo, .left_small_block, #profile_link, .profile_link, .navigation .link, .navigation .link:hover, .navigation_footer .link, .navigation_footer .link:hover, .completeness-gauge, input[type="text"], input[type="password"], input[type~="text"], input[type~="password"], input[type="email"], input[type="phone"], input[type~="email"], input[type~="phone"], input[type="search"], input[type~="search"], input[type~="date"], select, .content_title_expanded, .content_title_unexpanded, .content_subtitle, textarea, .post-content, .post-author, hr, h4, .postFeedWrapper, .tabs, #wallAttachmentMenu, .ovk-diag, .ovk-diag-head, #ovkDraw, #ovkDraw .literally .lc-picker, .literally .lc-options.horz-toolbar, .page_wrap, .container_gray .content, .summaryBar, .groups_options, form[action="/search"] > input, .header_search_input, .header_search_inputbt, .accent-box, .page_status_popup, .messenger-app--input, .messenger-app, .crp-entry:first-of-type, .crp-list, .crp-entry, .note_footer, .page_content > div, #editor, .note_header, center[style="background: white;border: #DEDEDE solid 1px;"], .album-photo img, .mb_tabs, .mb_tab#active div, .navigation-lang .link_new, #faqhead, #faqcontent, .post-divider, .comment, .commentsTextFieldWrap, tr, td, th, #votesBalance, .paginator a.active, .paginator a:hover, .topic-list-item, #userContent blockquote, .tippy-box[data-theme~="vk"], .poll { +.accountInfo, .left_small_block, #profile_link, .profile_link, .navigation .link, .navigation .link:hover, .navigation_footer .link, .navigation_footer .link:hover, .completeness-gauge, input[type="text"], input[type="password"], input[type~="text"], input[type~="password"], input[type="email"], input[type="phone"], input[type~="email"], input[type~="phone"], input[type="search"], input[type~="search"], input[type~="date"], select, .content_title_expanded, .content_title_unexpanded, .content_subtitle, textarea, .post-content, .post-author, hr, h4, .postFeedWrapper, .tabs, #wallAttachmentMenu, .ovk-diag, .ovk-diag-head, #ovkDraw, #ovkDraw .literally .lc-picker, .literally .lc-options.horz-toolbar, .page_wrap, .container_gray .content, .summaryBar, .groups_options, form[action="/search"] > input, .header_search_input, .header_search_inputbt, .accent-box, .page_status_popup, .messenger-app--input, .messenger-app, .crp-entry:first-of-type, .crp-list, .crp-entry, .note_footer, .page_content > div, #editor, .note_header, center[style="background: white;border: #DEDEDE solid 1px;"], .album-photo img, .mb_tabs, .mb_tab#active div, .navigation-lang .link_new, #faqhead, #faqcontent, .post-divider, .comment, .commentsTextFieldWrap, tr, td, th, #votesBalance, .paginator a.active, .paginator a:hover, .topic-list-item, #userContent blockquote, .tippy-box[data-theme~="vk"], .poll, #standaloneCommentBox { border-color: #2c2640 !important; } @@ -137,11 +137,11 @@ h4, .content_title_expanded, .summaryBar .summary, .content_title_unexpanded { } .content_title_expanded { - background-image: url("/themepack/midnight/0.0.2.5/resource/flex_arrow_open.png") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/flex_arrow_open.png") !important; } .content_title_unexpanded { - background-image: url("/themepack/midnight/0.0.2.5/resource/flex_arrow_shut.gif") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/flex_arrow_shut.gif") !important; } .ovk-video > .preview, .video-preview { @@ -163,17 +163,17 @@ h4, .content_title_expanded, .summaryBar .summary, .content_title_unexpanded { .page_yellowheader { color: #c6d2e8; - background-image: url("/themepack/midnight/0.0.2.5/resource/header_purple.png") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/header_purple.png") !important; background-color: #231f34; border-color: #231f34; } .page_header { - background-image: url("/themepack/midnight/0.0.2.5/resource/header.png") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/header.png") !important; } .page_custom_header { - background-image: url("/themepack/midnight/0.0.2.5/resource/header_custom.png") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/header_custom.png") !important; } .page_yellowheader span, .page_yellowheader a { @@ -193,11 +193,11 @@ form[action="/search"] > input, .header_search_input, textarea, input[type="text } input[type="checkbox"] { - background-image: url("/themepack/midnight/0.0.2.5/resource/checkbox.png") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/checkbox.png") !important; } input[type="radio"] { - background-image: url("/themepack/midnight/0.0.2.5/resource/radio.png") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/radio.png") !important; } .header_navigation .link { @@ -205,19 +205,19 @@ input[type="radio"] { } .heart { - background-image: url("/themepack/midnight/0.0.2.5/resource/like.gif") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/like.gif") !important; } .pinned-mark, .post-author .pin { - background-image: url("/themepack/midnight/0.0.2.5/resource/pin.png") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/pin.png") !important; } .repost-icon { - background-image: url("/themepack/midnight/0.0.2.5/resource/published.gif") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/published.gif") !important; } .post-author .delete { - background-image: url("/themepack/midnight/0.0.2.5/resource/input_clear.gif") !important; + background-image: url("/themepack/midnight/0.0.2.7/resource/input_clear.gif") !important; } .user-alert { @@ -328,4 +328,9 @@ input[type="radio"] { .borderup { border-top:1px solid #2f2f2f; +} + +#backdropEditor { + background-image: url("/themepack/midnight/0.0.2.7/resource/backdrop-editor.gif") !important; + border-color: #473e66 !important; } \ No newline at end of file diff --git a/themepacks/midnight/theme.yml b/themepacks/midnight/theme.yml index bc10b12e..85d331f1 100644 --- a/themepacks/midnight/theme.yml +++ b/themepacks/midnight/theme.yml @@ -1,5 +1,5 @@ id: midnight -version: "0.0.2.5" +version: "0.0.2.7" openvk_version: 0 enabled: 1 metadata:
- {_registration_closed} + {_registration_closed} {_registration_disabled_info} {if OPENVK_ROOT_CONF['openvk']['preferences']['registration']['disablingReason']} -
-
- {_admin_banned_link_reason}: -
- {php echo OPENVK_ROOT_CONF['openvk']['preferences']['registration']['disablingReason']} +

{_admin_banned_link_reason}:
+ {php echo OPENVK_ROOT_CONF['openvk']['preferences']['registration']['disablingReason']} {/if}