Jump to content

BlackShot

Пользователи
  • Регистрация

  • В сети

Reputation Activity

  1. Like
    BlackShot reacted to Zero108 in Videos   
    Открыть файл /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
  2. Like
    BlackShot got a reaction from aLEX49566 in Invision Community 4 Nulled   
    Могу ли я использовать эти файлы, если я использую английскую версию с другого веб-сайта?
  3. Like
    В целом это можно сделать. Но нужно предусмотреть взаимодействия с именем в движке. К примеру поле \IPS\Helpers\Form\Member получает пользователей по имени, и если выбрать пользователя с именем, которое уже существует, он сохранит первого попавшего пользователя с таким именем в БД, а не нужного нам. Авторизацию отключить по имени, а оставить только по email и пр. По хорошему тут нужно писать плагин.
  4. Like
    Логически, если два пользователя используют одинаковое имя пользователя, возникнут проблемы при попытке входа в систему. Это обычно предотвращается в системах управления пользователями, чтобы каждый пользователь имел уникальное имя пользователя.
    Распространенным способом избежать конфликтов в именах пользователей является использование уникального идентификатора пользователя. В этом случае каждому пользователю присваивается уникальный идентификатор, который может быть числовым или строковым. Идентификатор пользователя используется в качестве уникального критерия для идентификации каждого пользователя, и имя пользователя может быть повторяющимся.
    Например, в системе регистрации пользователей пользователи могут выбирать свои имена пользователей, но система должна иметь механизм, чтобы убедиться, что ни один человек не выберет одно и то же имя пользователя. Обычно это делается с использованием базы данных и поиска по предыдущим именам пользователей.
     
    Мой подход: Вы должны разорвать связь между полем имени пользователя и базой данных, чтобы не выполнять никаких проверок и позволить пользователям выбирать повторяющиеся имена. Затем вы обязательно должны настроить способ входа с использованием электронной почты, так как в противном случае система не сможет определить профиль.
     
    В профессиональных системах управления пользователями лучшим подходом для предотвращения конфликтов в именах пользователей является использование уникального идентификатора для каждого пользователя, такого как идентификатор пользователя.
    Метод, который вы описали, может привести к проблемам с безопасностью и ненадежностью системы. С точки зрения безопасности, отключение связи поля имени пользователя с базой данных может создать уязвимости в системе, так как имя пользователя должно быть уникальным, чтобы определить личность каждого пользователя и предотвратить несанкционированный доступ к учетным записям. Также связывание способа входа в систему с электронной почтой может вызвать другие проблемы, поскольку электронная почта не может быть сама по себе надежным и уникальным идентификатором для каждого пользователя.
  5. Confused
    Привет,
    Я требую, чтобы все мои пользователи регистрировались под своим полным именем. Однако в моей стране есть несколько распространенных имен. Это может стать проблемой в будущем.
    Я хотел бы разрешить дублирование имен пользователей на своих форумах. Как мне это сделать?
  6. Like
    Бывают ситуации когда забыл пароль от 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;  
  7. Like
    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
  8. Like
    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. 
  9. Like
    BlackShot reacted to bsnet in (SIV) Seo Транслитерация URL 2.0.1   
    Разобрался, вместо пробелов между словами надо минус прописывать 🙂
  10. Like
    BlackShot reacted to napolion in Videos   
    Please update Videos v3.5.4
  11. Sad
    BlackShot reacted to by_ix in Auto Follow Content   
    @BlackShotне проверял его, сейчас не знаю. 
  12. Like
    BlackShot reacted to by_ix in Download React   
    @MrHaim его там нет, плагин только тут. попросите автора исправить, если плагин действительно не работает. @BlackShot
  13. Like
    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; } и так добавляешь стили для каждой уникальной связке групп
  14. Like
    Спасибо! Я забыл, что могу установить правила для этого. 😄
  15. Like
    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. 🥇
  16. Like
    У меня это реализовано через 
     
    Еще при помощи правил реализовал перевод в группу забаненых, когда получают 10 предупреждений
  17. Like
    BlackShot reacted to Desti in Лучший помощник сайта 2022   
    Не, я не могу быть лучшим, т.к. почти не помогаю конкретными решениями (кроме исправления ошибок), совершенно не разбираюсь в современных молодежных трендах и технологиях, не отвечаю на вопросы тех, кто ищет готовый ответ, могу просто исчезнуть на долгий срок (семья, работа, лень), пишу код для своих нужд и  иногда делюсь им, если просят.
    Думаю, через пару страниц обсуждения тут будут перечислены все активные участники, но однозначного ответа на вопрос топика мы не получим. Возможно более правильным было бы голосование.
    Мое мнение - by_ix, но это мнение однобоко и основано исключительно на том, что человеку интересно совершенствоваться как программисту. 
  18. Like
    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. 🥇
  19. Like
    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. 🥇
  20. Like
    BlackShot reacted to SlawkA in Лучший помощник сайта 2022   
    Всем привет форумчане.
    Решил создать тему о тех кто помогает на сайте Вам.
    Которые тратят свое время что бы помочь Вам.
    Пишем либо ник либо через @ указываем ник или ники Пользователей если вы считаете что они лучшие помощники на сайте.
    Этот топик разрешен Админом @Respected
    Здесь только голосование.
    Другие обсуждения не по теме не рекомендую.
    Пример:
    @SlawkA такой блин помощник ну просто помог там и там с чем то.  
    Всем удачи и спасибо если поддержите эту тему.
  21. Like
    BlackShot reacted to by_ix in Upload a file before downloading   
    ты можешь свой плагин изменить. переписав проверку с реакций на загрузки. 
  22. Like
    Думаю достаточно будет просто создать нового юзера, и у него взять хеш из бд
  23. Like
    устанавливаешь на локалке или тестовом домене ips, далее из бд нового ips копируешь hash пароль в нужную бд админу
  24. Like
    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  
  25. Like
    BlackShot got a reaction from Donjuan in Загрузки и файлы   
    Не поделитесь решением?