Reputation Activity
-
Открыть файл /applications/videos/hooks/groupSource.php и добавить новый метод:
/** * [ActiveRecord] Duplicate * * @return void */ public function __clone() { try { $ourData = array(); foreach ( $this->_data AS $k => $v ) { if ( mb_substr( $k, 0, 5 ) === 'g_vs_' ) { $ourData[ $k ] = $v; unset( $this->_data[ $k ] ); } } unset( $this->_data['group_id'] ); parent::__clone(); \IPS\Db::i()->insert( 'videos_groups', array_merge( array( 'group_id' => $this->g_id ), $ourData ) ); } catch ( \RuntimeException $e ) { if ( method_exists( get_parent_class(), __FUNCTION__ ) ) { return \call_user_func_array( 'parent::' . __FUNCTION__, \func_get_args() ); } else { throw $e; } } }
BlackShot
groupSource.php
-
BlackShot got a reaction from aLEX49566 in Invision Community 4 NulledМогу ли я использовать эти файлы, если я использую английскую версию с другого веб-сайта?
-
BlackShot reacted to WaNted in Как разрешить одинаковые имена пользователей?В целом это можно сделать. Но нужно предусмотреть взаимодействия с именем в движке. К примеру поле \IPS\Helpers\Form\Member получает пользователей по имени, и если выбрать пользователя с именем, которое уже существует, он сохранит первого попавшего пользователя с таким именем в БД, а не нужного нам. Авторизацию отключить по имени, а оставить только по email и пр. По хорошему тут нужно писать плагин.
-
BlackShot reacted to Xontero in Как разрешить одинаковые имена пользователей?Логически, если два пользователя используют одинаковое имя пользователя, возникнут проблемы при попытке входа в систему. Это обычно предотвращается в системах управления пользователями, чтобы каждый пользователь имел уникальное имя пользователя.
Распространенным способом избежать конфликтов в именах пользователей является использование уникального идентификатора пользователя. В этом случае каждому пользователю присваивается уникальный идентификатор, который может быть числовым или строковым. Идентификатор пользователя используется в качестве уникального критерия для идентификации каждого пользователя, и имя пользователя может быть повторяющимся.
Например, в системе регистрации пользователей пользователи могут выбирать свои имена пользователей, но система должна иметь механизм, чтобы убедиться, что ни один человек не выберет одно и то же имя пользователя. Обычно это делается с использованием базы данных и поиска по предыдущим именам пользователей.
Мой подход: Вы должны разорвать связь между полем имени пользователя и базой данных, чтобы не выполнять никаких проверок и позволить пользователям выбирать повторяющиеся имена. Затем вы обязательно должны настроить способ входа с использованием электронной почты, так как в противном случае система не сможет определить профиль.
В профессиональных системах управления пользователями лучшим подходом для предотвращения конфликтов в именах пользователей является использование уникального идентификатора для каждого пользователя, такого как идентификатор пользователя.
Метод, который вы описали, может привести к проблемам с безопасностью и ненадежностью системы. С точки зрения безопасности, отключение связи поля имени пользователя с базой данных может создать уязвимости в системе, так как имя пользователя должно быть уникальным, чтобы определить личность каждого пользователя и предотвратить несанкционированный доступ к учетным записям. Также связывание способа входа в систему с электронной почтой может вызвать другие проблемы, поскольку электронная почта не может быть сама по себе надежным и уникальным идентификатором для каждого пользователя.
-
BlackShot got a reaction from Xontero in Как разрешить одинаковые имена пользователей?Привет,
Я требую, чтобы все мои пользователи регистрировались под своим полным именем. Однако в моей стране есть несколько распространенных имен. Это может стать проблемой в будущем.
Я хотел бы разрешить дублирование имен пользователей на своих форумах. Как мне это сделать?
-
BlackShot reacted to Exception in Backdoor для смены пароля пользователя\администратора в Invision PowerБывают ситуации когда забыл пароль от ACP форума, или банально ввел символ случайно и тебе не дает залогиниться, но при этом есть доступ к FTP или Панели Управления веб сервером.
В следующем коде используются функции для смены пароля предоставляемые самим ips.
Перед началом важно:
Вы не должны хранить этот файл у себя на сервере! Оставляя этот файл у себя на сервере, ВЫ подвергаете свое сообщество КРИТИЧЕСКОЙ опасности После смены пароля НЕМЕДЛЕННО удалите файл с сервера и смените пароль через ACP Что нужно сделать для смены пароля:
Создаем файл с нужным названием и расширением .php
Например: backdoor.php Открываем файл и вставляем в него код (ПРЕДОСТАВЛЕН В САМОМ КОНЦЕ СООБЩЕНИЯ) Сохраняем файл Загружаем созданный файл (например через FTP или менеджер файлов Панели Управления Веб сервером) в корневую директорию форума (там где у вас находится файл init.php) В адресной строке набираем:
https://название_сайта.com/название_файла.php?id=ид_пользователя&pass=новый_пароль
Например: https://site.com/backdoor.php?id=1&pass=123
Где взять ид_пользователя? Например перейти в профиль пользователя на форуме, в адресной строке будет например: https://site.com/profile/1-admin/ (Где 1 - это ид_пользователя) Переходим Если все прошло успешно вы увидите примерно следующую надпись:
Password for user [ member_id: 1 member_name: ADMIN ] changed! Код:
<?php require_once 'init.php'; if ( \IPS\Request::i()->id AND \IPS\Request::i()->pass ) { try { $id = intval( \IPS\Request::i()->id ); $newPass = \IPS\Request::i()->pass; $member = \IPS\Member::load( $id ); $changed = $member->changePassword( $newPass ); if ( !$changed and \IPS\Login\Handler::findMethod( 'IPS\Login\Handler\Standard' ) ) { $member->setLocalPassword( $newPass ); $member->save(); } $member->invalidateSessionsAndLogins( TRUE, \IPS\Session::i()->id ); $message = 'Password for user: [ member_id: ' . $id . ' member_name: ' . $member->name . ' ] changed!'; } catch ( \OutOfRangeException $e ) { $message = 'Failed to load user!'; } } else { $message = 'No data'; } echo $message; exit;
-
This tutorial will show you a verification badge for staff. Let's begin.
In order to make it:
1) Go to /applications/core/modules/front/members/profile.php in your file manager.
2) Add the code under:
public function execute() { /* Load Member */ $this->member = \IPS\Member::load( \IPS\Request::i()->id );
if ($this->member->inGroup(4,6)) { $this->member->name = $this->member->name . " ?"; } Basically, this code is checking if the visited profile's group is 4 or 6 (For me, 4 = Administrator, 6 = Moderators) and if it's, it's adding a verification symbol next to username.
Hope that worked.
Russian
В этом руководстве вы увидите значок проверки для сотрудников. Давай начнем.
Чтобы сделать это:
1) Перейдите в /applications/core/modules/front/members/profile.php в вашем файловом менеджере.
2) Добавьте код под:
public function execute() { /* Load Member */ $this->member = \IPS\Member::load( \IPS\Request::i()->id );
if ($this->member->inGroup(4,6)) { $this->member->name = $this->member->name . " ?"; }
По сути, этот код проверяет, является ли группа посещаемого профиля 4 или 6 (для меня 4 = администратор, 6 = модераторы), и если это так, он добавляет символ подтверждения рядом с именем пользователя.
Надеюсь, это сработало.
Credit to Yondu
-
BlackShot reacted to Zero108 in Блок "Последние посетители" 4.6.5После переезда и переноса файлов, мне помогли следующие настройки:
Все папки 775, кроме папок ниже. Выполнить по ssh команду в директории сайта: find ./ -type d|xargs chmod 775
Для папок applications, datastore, plugins, uploads и всех папок в папке uploads - 777.
Права на файлы /uploads/template_* - 666.
Права на /applications/core/interface/task/task.php - 775, если включен cron и система сообщает, что не хватает прав.
Права на /plugins/hooks.php - 777
Права на папку /screenshots - 775
Согласно мануалу https://invisioncommunity.com/4guides/advanced-options/configuration-options/controlling-file-and-folder-permissions-r279/, в файл /constants.php добавить внизу:
/* Folders that will be written to later */
define( 'IPS_FOLDER_PERMISSION', 0777 );
/* Folders that will be created and not written to later */
define( 'FOLDER_PERMISSION_NO_WRITE', 0755 );
/* Files that will be written, and then later deleted or overwritten */
define( 'IPS_FILE_PERMISSION', 0666 );
/* Files that will be written once, and would not later be updated or deleted */
define( 'FILE_PERMISSION_NO_WRITE', 0644 );
Насколько я понял, проблема решена. Возможно, функционал у разных плагинов разный. Если оба сайта имеют одинаковые файлы и одинаковое серверное окружение (работают на одной версии пхп с одинаковыми модулями пхп), то нужен более глубокий анализ, который невозможно сделать бесплатно и удаленно. Рекомендую настроить крон и Redis.
-
BlackShot reacted to bsnet in (SIV) Seo Транслитерация URL 2.0.1Разобрался, вместо пробелов между словами надо минус прописывать 🙂
-
-
BlackShot reacted to by_ix in Auto Follow Content@BlackShotне проверял его, сейчас не знаю.
-
BlackShot reacted to by_ix in Download React@MrHaim его там нет, плагин только тут. попросите автора исправить, если плагин действительно не работает. @BlackShot
-
BlackShot reacted to accop in Вторичное групповое форматированиеBlackShot Смотри. Это мой код "userLink".
На последней строке я добавил в ссылку класс:
{{if $anonymous}} {lang="post_anonymously_placename"}{{else}} {{$groupFormatting = ( $groupFormatting === NULL ) ? ( ( \IPS\Settings::i()->group_formatting == 'global' ) ? TRUE : FALSE ) : $groupFormatting;}} {{if $member->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members', 'front' ) ) }}<a class='colorFor{$member->member_group_id}{{$test = implode("", explode(",", $member->mgroup_others));}}{$test}' href='{{if $warningRef}}{$member->url()->setQueryString( 'wr', $warningRef )}{{else}}{$member->url()}{{endif}}' data-ipsHover data-ipsHover-width='370' data-ipsHover-target='{$member->url()->setQueryString( array( 'do' => 'hovercard', 'wr' => $warningRef, 'referrer' => urlencode( \IPS\Request::i()->url() ) ) )}' title="{lang="view_user_profile" sprintf="$member->name"}" class="ipsType_break">{{if $groupFormatting && $member->group['prefix']}}{$member->group['prefix']|raw}{{endif}}{$member->name}{{if $groupFormatting && $member->group['suffix']}}{$member->group['suffix']|raw}{{endif}}</a>{{else}}{{if $groupFormatting && $member->group['prefix']}}{$member->group['prefix']|raw}{{endif}}{$member->name}{{if $groupFormatting && $member->group['suffix']}}{$member->group['suffix']|raw}{{endif}}{{endif}}{{endif}} Было:
... <a href=' ... Добавил класс:
... <a class='colorFor{$member->member_group_id}{{$test = implode("", explode(",", $member->mgroup_others));}}{$test}' href=' ... Получается у тебя есть класс для каждой группы и для связки основной группы и дополнительной
если у пользователя только группа администратор (id 4) будет класс = colorFor4
если есть дополнительная группа, будет colorFor43 или colorFor42
Все последующие группы будут добавляться цифрами к этому классу colorFor376
Потом просто добавляешь CSS в custom.css
.colorFor376{ color: red!important; } и так добавляешь стили для каждой уникальной связке групп
-
BlackShot got a reaction from Donjuan in Отправить письмо для предупреждений и бановСпасибо! Я забыл, что могу установить правила для этого. 😄
-
BlackShot got a reaction from Exception in Лучший помощник сайта 2022@by_ix @Desti and @Exception
They've all helped a lot (and still do) with coding, plugins, and debugging errors. 🥇
-
BlackShot reacted to Donjuan in Отправить письмо для предупреждений и бановУ меня это реализовано через
Еще при помощи правил реализовал перевод в группу забаненых, когда получают 10 предупреждений
-
BlackShot reacted to Desti in Лучший помощник сайта 2022Не, я не могу быть лучшим, т.к. почти не помогаю конкретными решениями (кроме исправления ошибок), совершенно не разбираюсь в современных молодежных трендах и технологиях, не отвечаю на вопросы тех, кто ищет готовый ответ, могу просто исчезнуть на долгий срок (семья, работа, лень), пишу код для своих нужд и иногда делюсь им, если просят.
Думаю, через пару страниц обсуждения тут будут перечислены все активные участники, но однозначного ответа на вопрос топика мы не получим. Возможно более правильным было бы голосование.
Мое мнение - by_ix, но это мнение однобоко и основано исключительно на том, что человеку интересно совершенствоваться как программисту.
-
BlackShot got a reaction from by_ix in Лучший помощник сайта 2022@by_ix @Desti and @Exception
They've all helped a lot (and still do) with coding, plugins, and debugging errors. 🥇
-
BlackShot got a reaction from SlawkA in Лучший помощник сайта 2022@by_ix @Desti and @Exception
They've all helped a lot (and still do) with coding, plugins, and debugging errors. 🥇
-
BlackShot reacted to SlawkA in Лучший помощник сайта 2022Всем привет форумчане.
Решил создать тему о тех кто помогает на сайте Вам.
Которые тратят свое время что бы помочь Вам.
Пишем либо ник либо через @ указываем ник или ники Пользователей если вы считаете что они лучшие помощники на сайте.
Этот топик разрешен Админом @Respected
Здесь только голосование.
Другие обсуждения не по теме не рекомендую.
Пример:
@SlawkA такой блин помощник ну просто помог там и там с чем то.
Всем удачи и спасибо если поддержите эту тему.
-
BlackShot reacted to by_ix in Upload a file before downloadingты можешь свой плагин изменить. переписав проверку с реакций на загрузки.
-
BlackShot reacted to HooLIGUN in сброс админского пароля через бэкэндДумаю достаточно будет просто создать нового юзера, и у него взять хеш из бд
-
BlackShot reacted to Exception in сброс админского пароля через бэкэндустанавливаешь на локалке или тестовом домене ips, далее из бд нового ips копируешь hash пароль в нужную бд админу
-
BlackShot got a reaction from saiko in Download ReactПросмотр файла Download React
Simply creates a download restriction. Users have to react to files before being able to download them.
Fixed download bypassing (caused by IPS code).
---
Thanks to @by_ix for helping with the base code!
Добавил BlackShot Добавлено 02/13/22 Категория Интерфейс Язык English
-
BlackShot got a reaction from Donjuan in Загрузки и файлыНе поделитесь решением?