Skip to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

t_reks

Актив
  • Регистрация

  • В сети

Reputation Activity

  1. Sad
    Вообщем, спустя долгое время тестов и вашей помощи удалось понять логику сего чуда ...
    Оказывается, чтобы таймер заработал, надо не просто обновить страницу, а ввести правильно пароль, тогда таймер начинает считать ...
    А так, как я и писал ранее, каждое обновление равно новому бану ...
    Всем спасибо за помощь!
  2. Like
    Да.
    Вернули как было.
    Всем спасибо за помощь!
    Век живи, век учись ...
  3. Thanks
    Поместить скрипт в корневую директорию сайта в виде файла:
    #!/bin/bash # Получаем директорию, где находится сам скрипт SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # Файл для записи даты и времени (будет создан в той же директории, что и скрипт) LOG_FILE="$SCRIPT_DIR/last_run.txt" # Записываем текущую дату и время в нужном формате date '+%Y-%m-%d %H:%M:%S' > "$LOG_FILE"Дать права на выполнение - выполнить в консоли команду, указав в команде правильный путь к файлу скрипта от корня сайта:
    chmod +x /путь/к/скрипту/last_run.shДобавить в крон задачу на выполнение каждую минуту:
    * * * * * /путь/к/скрипту/last_run.shПроверить, что скрипт запускается по крону - открыть файл last_run.txt. Вы должны увидеть что-то вроде: 2026-06-14 15:30:00
    В IPS 5 можно определить права по умолчанию через файл constants.php:
    <?php define( 'IPS_FOLDER_PERMISSION', 0777 ); define( 'FOLDER_PERMISSION_NO_WRITE', 0755 ); define( 'IPS_FILE_PERMISSION', 0666 ); define( 'FILE_PERMISSION_NO_WRITE', 0644 );
    Скрипт для проверки прав на папки и файлы:
    Создайте файл check_permissions.php в корневой директории вашего сайта (там же, где лежит conf_global.php).
    <?php /** * Скрипт проверки прав на файлы и папки IPS5 * Разместите этот файл в корневой директории сайта и запустите через браузер * После проверки УДАЛИТЕ файл с сервера! */ // Отключаем ограничение времени выполнения set_time_limit(0); // Включаем вывод всех ошибок для диагностики error_reporting(E_ALL); ini_set('display_errors', 1); echo "<!DOCTYPE html>"; echo "<html><head><meta charset='UTF-8'><title>IPS5 - Проверка прав на файлы и папки</title>"; echo "<style> body { font-family: monospace; background: #f5f5f5; padding: 20px; } .container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } h1 { color: #333; border-bottom: 2px solid #eee; padding-bottom: 10px; } h2 { color: #555; margin-top: 20px; font-size: 18px; } table { width: 100%; border-collapse: collapse; margin-top: 10px; } th, td { padding: 8px 12px; text-align: left; border-bottom: 1px solid #ddd; } th { background: #f0f0f0; font-weight: bold; } .success { color: green; font-weight: bold; } .warning { color: orange; font-weight: bold; } .error { color: red; font-weight: bold; } .info { color: blue; } .summary { margin: 20px 0; padding: 15px; border-radius: 5px; } .summary.good { background: #d4edda; border: 1px solid #c3e6cb; color: #155724; } .summary.bad { background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; } .summary.warning { background: #fff3cd; border: 1px solid #ffeeba; color: #856404; } </style></head><body>"; echo "<div class='container'>"; echo "<h1> Invision Community 5 - Проверка прав на файлы и папки</h1>"; echo "<p><strong>Время проверки:</strong> " . date('Y-m-d H:i:s') . "</p>"; echo "<p><strong>Директория проверки:</strong> " . __DIR__ . "</p>"; // Определяем необходимые права для разных типов $requiredPermissions = [ // Папки, требующие права на запись 'writable_dirs' => [ 'uploads', 'datastore', 'applications', 'plugins', ], // Файлы, требующие права на запись 'writable_files' => [ 'conf_global.php', ], // Папки, которые должны быть доступны для чтения (755) 'readable_dirs' => [ 'applications', 'plugins', 'uploads', 'datastore', 'system', 'themes', ], ]; $results = [ 'total' => 0, 'success' => 0, 'warning' => 0, 'error' => 0, 'details' => [], ]; // Функция для получения прав в читаемом виде function getPermString($perms) { if (($perms & 0xC000) == 0xC000) { // Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { // Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { // Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { // Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { // Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { // Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { // FIFO pipe $info = 'p'; } else { // Unknown $info = 'u'; } // Владелец $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x') : (($perms & 0x0800) ? 'S' : '-')); // Группа $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x') : (($perms & 0x0400) ? 'S' : '-')); // Остальные $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x') : (($perms & 0x0200) ? 'T' : '-')); return $info; } // Функция проверки прав на папку function checkDirectory($path, $required, $results, $isWritable = true) { if (!file_exists($path)) { $results['details'][] = [ 'path' => $path, 'type' => 'directory', 'status' => 'warning', 'current' => 'не существует', 'required' => $required, 'message' => ' Папка не найдена!' ]; $results['warning']++; return $results; } $perms = fileperms($path); $permString = getPermString($perms); $permOctal = substr(sprintf('%o', $perms), -4); $isWritableActual = is_writable($path); $isReadableActual = is_readable($path); if ($isWritable) { $isOk = $isWritableActual; $requiredDesc = "должна быть записываемой (writable)"; } else { $isOk = $isReadableActual; $requiredDesc = "должна быть читаемой (readable)"; } $status = $isOk ? 'success' : 'error'; $statusText = $isOk ? ' OK' : ' ОШИБКА'; $statusClass = $isOk ? 'success' : 'error'; $results['details'][] = [ 'path' => $path, 'type' => 'directory', 'status' => $status, 'current' => "$permOctal ($permString)", 'required' => $requiredDesc, 'message' => $statusText ]; if ($isOk) { $results['success']++; } else { $results['error']++; } $results['total']++; return $results; } // Функция проверки прав на файл function checkFile($path, $requiredPerm, $results) { if (!file_exists($path)) { $results['details'][] = [ 'path' => $path, 'type' => 'file', 'status' => 'warning', 'current' => 'не существует', 'required' => $requiredPerm, 'message' => ' Файл не найден (возможно, это нормально)' ]; $results['warning']++; return $results; } $perms = fileperms($path); $permString = getPermString($perms); $permOctal = substr(sprintf('%o', $perms), -4); $isOk = false; if ($requiredPerm === 'writable') { $isOk = is_writable($path); $requiredDesc = "должен быть записываемым (writable, обычно 666)"; } elseif ($requiredPerm === 'readable') { $isOk = is_readable($path); $requiredDesc = "должен быть читаемым (readable, обычно 644)"; } elseif ($requiredPerm === 'executable') { $isOk = is_executable($path); $requiredDesc = "должен быть исполняемым (executable, обычно 755)"; } $status = $isOk ? 'success' : 'error'; $statusText = $isOk ? ' OK' : ' ОШИБКА'; $statusClass = $isOk ? 'success' : 'error'; // Для conf_global.php особая проверка if (basename($path) === 'conf_global.php') { if ($isOk) { $statusText = ' OK (файл существует и доступен для записи)'; } else { $statusText = ' ОШИБКА (файл должен быть доступен для записи, chmod 666)'; } } $results['details'][] = [ 'path' => $path, 'type' => 'file', 'status' => $status, 'current' => "$permOctal ($permString)", 'required' => $requiredDesc, 'message' => $statusText ]; if ($isOk) { $results['success']++; } else { $results['error']++; } $results['total']++; return $results; } // Функция рекурсивной проверки папки function checkDirectoryRecursive($dir, $results, $depth = 0) { if ($depth > 3) return $results; // Ограничиваем глубину if (!is_dir($dir)) return $results; $files = scandir($dir); if (!$files) return $results; foreach ($files as $file) { if ($file === '.' || $file === '..') continue; $path = $dir . DIRECTORY_SEPARATOR . $file; if (is_dir($path)) { // Проверяем папку $perms = fileperms($path); $permOctal = substr(sprintf('%o', $perms), -4); $expectedReadable = '755'; $isReadable = is_readable($path); $isWritable = is_writable($path); // Для uploads проверяем особо if (basename($path) === 'uploads' || strpos($path, '/uploads/') !== false) { $isOk = ($isWritable && $isReadable); } else { $isOk = $isReadable; } $results['details'][] = [ 'path' => $path, 'type' => 'directory', 'status' => $isOk ? 'success' : ($isReadable ? 'warning' : 'error'), 'current' => $permOctal, 'required' => (basename($path) === 'uploads' ? '777 (writable)' : '755 (readable)'), 'message' => $isOk ? ' OK' : (is_writable($path) ? ' Нет прав на чтение' : ' Нет прав') ]; if ($isOk) { $results['success']++; } elseif ($isReadable) { $results['warning']++; } else { $results['error']++; } $results['total']++; // Рекурсивно проверяем вложенные папки $results = checkDirectoryRecursive($path, $results, $depth + 1); } } return $results; } echo "<h2> Проверка основных папок и файлов IPS5</h2>"; echo "<table>"; echo "<tr><th>Путь</th><th>Тип</th><th>Текущие права</th><th>Требуется</th><th>Статус</th></tr>"; $baseDir = __DIR__; // Проверяем основные папки $writableDirs = ['uploads', 'datastore', 'applications', 'plugins']; foreach ($writableDirs as $dir) { $path = $baseDir . '/' . $dir; $results = checkDirectory($path, 'записываемая (writable, 777 для uploads, 755 для остальных)', $results, true); } // Проверяем conf_global.php $results = checkFile($baseDir . '/conf_global.php', 'writable', $results); // Проверяем дополнительные важные папки $importantDirs = ['system', 'themes']; foreach ($importantDirs as $dir) { $path = $baseDir . '/' . $dir; if (file_exists($path)) { $results = checkDirectory($path, 'читаемая (readable, 755)', $results, false); } } // Проверяем папку uploads рекурсивно if (file_exists($baseDir . '/uploads')) { echo "</table>"; echo "<h2> Глубокая проверка папки uploads (рекурсивно)</h2>"; echo "<table>"; echo "<tr><th>Путь</th><th>Тип</th><th>Права</th><th>Требуется</th><th>Статус</th></tr>"; $results = checkDirectoryRecursive($baseDir . '/uploads', $results); } echo "</table>"; // Вывод результатов echo "<h2> Итог проверки</h2>"; $summaryClass = 'good'; if ($results['error'] > 0) { $summaryClass = 'bad'; } elseif ($results['warning'] > 0) { $summaryClass = 'warning'; } echo "<div class='summary $summaryClass'>"; echo "<strong>Результаты:</strong><br>"; echo " Успешно: {$results['success']}<br>"; echo " Предупреждений: {$results['warning']}<br>"; echo " Ошибок: {$results['error']}<br>"; echo " Всего проверено: {$results['total']}<br>"; echo "</div>"; // Команды для исправления прав if ($results['error'] > 0 || $results['warning'] > 0) { echo "<h2> Команды для исправления прав</h2>"; echo "<div style='background: #f8f9fa; padding: 15px; border-radius: 5px; font-family: monospace;'>"; echo "<p><strong>Выполните следующие команды через SSH:</strong></p>"; echo "<code>"; echo "# Установка прав на папки (755) и файлы (644)<br>"; echo "find " . $baseDir . " -type d -exec chmod 755 {} \;<br>"; echo "find " . $baseDir . " -type f -exec chmod 644 {} \;<br><br>"; echo "# Папка uploads и все вложенные (777)<br>"; echo "chmod -R 777 " . $baseDir . "/uploads<br><br>"; echo "# Папка datastore (777)<br>"; echo "chmod 777 " . $baseDir . "/datastore<br><br>"; echo "# Папки applications и plugins (755)<br>"; echo "chmod 755 " . $baseDir . "/applications " . $baseDir . "/plugins<br><br>"; echo "# Файл conf_global.php (666)<br>"; echo "chmod 666 " . $baseDir . "/conf_global.php<br><br>"; echo "# Если проблемы сохраняются, проверьте владельца файлов:<br>"; echo "chown -R www-data:www-data " . $baseDir . "<br>"; echo "(замените www-data на пользователя вашего веб-сервера)"; echo "</code>"; echo "</div>"; } // Проверка PHP расширений echo "<h2> Проверка PHP расширений</h2>"; echo "<table>"; echo "<tr><th>Расширение</th><th>Статус</th></tr>"; $extensions = [ 'curl' => 'cURL', 'gd' => 'GD', 'mysqli' => 'MySQLi', 'json' => 'JSON', 'mbstring' => 'Multibyte String', 'zip' => 'Zip', 'xml' => 'XML', 'dom' => 'DOM', 'simplexml' => 'SimpleXML', 'openssl' => 'OpenSSL', 'session' => 'Session', 'pdo' => 'PDO', ]; foreach ($extensions as $ext => $name) { $loaded = extension_loaded($ext); $status = $loaded ? ' Загружено' : ' Не загружено'; $class = $loaded ? 'success' : 'error'; echo "<tr><td>$name ($ext)</td><td class='$class'>$status</td></tr>"; } echo "</table>"; // Информация о PHP echo "<h2> Информация о PHP</h2>"; echo "<table>"; echo "<tr><th>Параметр</th><th>Значение</th></tr>"; echo "<tr><td>PHP версия</td><td>" . PHP_VERSION . "</td></tr>"; echo "<tr><td>memory_limit</td><td>" . ini_get('memory_limit') . "</td></tr>"; echo "<tr><td>upload_max_filesize</td><td>" . ini_get('upload_max_filesize') . "</td></tr>"; echo "<tr><td>post_max_size</td><td>" . ini_get('post_max_size') . "</td></tr>"; echo "<tr><td>max_execution_time</td><td>" . ini_get('max_execution_time') . " сек</td></tr>"; echo "</table>"; echo "<p style='margin-top: 30px; padding: 10px; background: #fff3cd; border-radius: 5px;'>"; echo " <strong>Важно:</strong> После проверки удалите этот файл с сервера!<br>"; echo "Он может представлять угрозу безопасности, так как раскрывает информацию о вашей системе."; echo "</p>"; echo "</div></body></html>";Запустите через браузер
    http://ваш-сайт.ru/check_permissions.phpСкрипт покажет:
    ✅ Зелёным — правильные права
    ⚠️ Жёлтым — предупреждения
    ❌ Красным — ошибки
    Если скрипт нашёл ошибки, он покажет готовые команды для SSH внизу страницы. Скопируйте и выполните их.
    Обязательно удалите файл check_permissions.php с сервера после проверки! Он содержит информацию о структуре вашего сайта и может быть использован злоумышленниками.
  4. Thanks
    t_reks reacted to saiko in Платежи YooMoney   
    Я в юмани написал они дадут ответ в течение 24х часов. Но вот что я нарыл еще и кажется это проблема...
    https://yoomoney.ru/docs/wallet/using-api/notification-p2p-incoming



    Также прошерстил вебхук на string

    Нашлось их довольно много в файлах
    \modules\front\yoomoney\webhook.php:
    \Application.php:
    \modules\front\yoomoney\webhook.php:
    \sources\Gateway\YooMoney.php:
    \Application.php:
    \modules\front\yoomoney\webhook.php:
    \sources\Gateway\YooMoney.php:

    Хз че менять тут а может и вовсе там где то не везде...
    Короче подожду че ответят в поддержке...
    Я им веб хук закинул пусть чекнут хотя бы напишут что поменять если сами не поменяют скину инфу сюда как ответят...
  5. Thanks
    t_reks reacted to D1gaTel in Правка письма   
    Кастомизация ->Внешний вид -> Email сообщения -> Регистрация требует одобрения администратором
    HTML email:
    <br /> {$email->language->addToStack("email_registration_notify", FALSE, array( 'sprintf' => array( \IPS\Settings::i()->board_name ) ) )} <br /> <br /> <strong style="color: #a72336; font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;">{$email->language->addToStack("email_admin_approval_msg", FALSE)}</strong> <br /><br /> <table width='100%' cellpadding='15' cellspacing='0' border='0' style='background: #f9f9f9;'> <tr> <td dir='{dir}'> <table width='100%' cellpadding='0' cellspacing='0' border='0' style='background: #f9f9f9;' class='responsive_table'> <tr class='responsive_row'> <td dir='{dir}' width='150' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;" valign='top'><strong>{$email->language->addToStack("username", FALSE)}:</strong></td> <td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;">{$member->name}</td> </tr> <tr class='responsive_row'> <td dir='{dir}' width='150' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;" valign='top'><strong>{$email->language->addToStack("email_address", FALSE)}:</strong></td> <td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;">{$member->email}</td> </tr> <tr class='responsive_row'> <td dir='{dir}' width='150' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;" valign='top'><strong>{$email->language->addToStack("ip_address", FALSE)}:</strong></td> <td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;">{$member->ip_address}</td> </tr> {{if $fieldGroups = $member->profileFields() and \count( $fieldGroups )}} {{foreach $fieldGroups as $fields}} {{foreach $fields as $field => $data}} <tr class='responsive_row'> <td dir='{dir}' width='150' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;" valign='top'><strong>{$email->language->addToStack($field, FALSE)}:</strong></td> <td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 14px;">{expression="preg_replace( '/^<p>(.*)<\/p>$/', '$1', trim( $email->parseTextForEmail( $data, $email->language ) ) )" raw="true"}</td> </tr> {{endforeach}} {{endforeach}} {{endif}} </table> </td> </tr> </table> <br /> <a href='{$member->url()}' style="color: #ffffff; font-family: 'Helvetica Neue', helvetica, sans-serif; text-decoration: none; font-size: 12px; background: {setting="email_color"}; line-height: 32px; padding: 0 10px; display: inline-block; border-radius: 3px;">{$email->language->addToStack("go_to_this_user", FALSE, array( 'sprintf' => array( $member->name ) ) )}</a> <a href='{url="app=core&module=members&controller=members&filter=members_filter_validating" base="admin"}' style="color: #ffffff; font-family: 'Helvetica Neue', helvetica, sans-serif; text-decoration: none; font-size: 12px; background: {setting="email_color"}; line-height: 32px; padding: 0 10px; display: inline-block; border-radius: 3px;">{$email->language->addToStack("block_awaiting_validation_all")}</a> <br /><br /> <em style='color: #8c8c8c'>— {setting="board_name"}</em>Обычный текст email:
    {$email->language->addToStack("email_registration_notify_validate")} {$email->language->addToStack("go_to_this_user", FALSE, array( 'htmlsprintf' => array( $member->name ) ) )}: {$member->url()} {$email->language->addToStack("block_awaiting_validation_all")}: {url="app=core&module=members&controller=members&filter=members_filter_validating" base="admin" plain="true"} -- {setting="board_name"}
  6. Thanks
    https://ipbskins.ru/files/file/360-vk-video-rutube-dzen-yandex-music-for-ips4/


    VK video, Rutube, Dzen, Yandex Music for IPS4 1.0.5.zip
  7. Like
    t_reks reacted to dfdgfgfsd in Ошибка 503   
    это вроде ошибка от самого хостинга либо изменненная дефолтная, прости логи nginx или что там стоит
    https://dmzhost.co/
    держите реальный "почти единственный" абузоустойчивый сервер, где разрешено даже сканирование сетей и проч
  8. Thanks
    t_reks reacted to Respected in просит лицензию   
    Новая версия загржена.
    В данном случае можно ввести любой ключ.
  9. Like
    t_reks got a reaction from CharonSix in Brilliant Discord Integration   
    С 4.7.22 приложение общедоступной версии не будет работать.
    Требуется обновление приложения, и это только платно по заказу.
    У меня 4.7.12, сделали платный апгрейд приложения под требование проекта, и на этом стоп. Каждое обновление версии IPS будет требовать и обновление приложения, конвеер по расходам ни к чему.
  10. Thanks
    t_reks reacted to gelo in Как должен выглядеть .htaccess в IPS 4.4.10   
    https://ddos-guard.ru/
    https://sucuri.net/website-security-platform/
    а так-же
    Акамаи, StackPath, KeyCDN , Sucuri, Amazon Cloudfront CDN , Azure CDN, Google CDN,

    И все практически платные.
    И правильно делает.
  11. Haha
    За 500$?
    Ага, щас.
  12. Thanks
    t_reks reacted to cmertqq in Абьюзоустойчивые хостинги   
    когда выбираешь инфраструктуру для сайта, в первую очередь смотри на доменного регистратора - он должен быть абьюзоустойчивым (это первая вещь на которую тебе нужно обратить внимание) а вот на хостинг многие забивают, но всё же нужно брать DMCA Ignored хостинги.
    если у тебя на сайте лезут платные файлы за бесплатно (те самые leaks), то смотри куда ставить сервер:
    - если аудитория русская, бери хостинг в рф, без вариантов (рф похуй на твои файлы, им не похуй только на порнуху)
    - если народ со всего мира, то бери в Нидерландах
    ещё момент про cloudflare: будь готов его ставить чтобы включить проксирование и скрыть айпи, и они могут потребовать убрать контент с сайта, но домен на их ns‑серверах не тронут никогда, если только ты будешь их игнорировать. то есть если удалишь что просят - всё будет хорошо в любом случае.
    рекомендую брать ultahost.com в любом случае (даже если только рф). - они просто игнорят любые жалобы
    на счёт доменов, нужно брать хорошего регистратора, и чтобы максимально снизить риск блокировки домена то:
    - брать домен только ccTLD, иначе риски будут серьёзными (потеря домена)
    - брать регистратора зарегестрированый не в США, (например Hong Kong)
    Рекомендую: nicenic.net (они на почту пишут тебе жалобу которую пишут им, и ты выполняешь требование, как ты выполнишь что нужно они сами за тебя готовят апеляцию)
  13. Thanks
    t_reks reacted to gelo in Абьюзоустойчивые хостинги   
    Верно. Подмена днс и все, посмотрите ютуб все понятно.

    Но клауд у некоторых провайдеров рф не работвет, ищите аналог
  14. Thanks
    t_reks reacted to gelo in Абьюзоустойчивые хостинги   
    Самый простой вариант, как делают многие.
    Устанавить на домен cloudflare.com или подобный, чтоб скрыть реальный IP и не забываем с почтовой записи тоже скрыть ip, его можно узнать через SPF получаемого письма..
    Жаловаться будут пальцем в попу.
    Будет везде, тем более хостинг европейский и соблюдают все законы, где нормальная ТП.

    Я выше написал, как решить ваш вопрос безболезненно.
  15. Haha
    Сервера в России.
    Ну и к чему оно мне.
  16. Haha
  17. Thanks
    t_reks reacted to HooLIGUN in (WK) Limit of reputation awarded   
    Проверяй в шаблоне userBar
    Есть ли код и не изменяет ли его какой то другой плагин
    <li class="cNotifications cUserNav_icon">
    Плагин к нему цепляется и добавляет вывод кнопки перед этим кодом.
  18. Thanks
    t_reks reacted to SlawkA in Блок "Последние посетители" 4.6.5   
    ну попробуй в коде меж двумя точками поставить запятую

  19. Haha
    t_reks reacted to aLEX49566 in (WK) Limit of reputation awarded   
    Там у всех бан)
  20. Haha
    t_reks got a reaction from aLEX49566 in (WK) Limit of reputation awarded   
    Не факт, что оно работает.
    И там, где оно есть, у меня бан вроде. 😀
  21. Thanks
    t_reks reacted to Exception in Активность и отображение.   
    механизмы работают так, что если у пользователя в активности только лайки, то они не выводятся, потому что система добавляет их вывод не отдельно А ВМЕСТЕ с последним контентом пользователя, таким образом если внутренний поиск выдал 0 результатов контента, то вывод лайков (реакций) в активность добавлен быть не может
    да, это не правильно, но это IC
  22. Thanks
    t_reks reacted to aLEX49566 in Активность и отображение.   
  23. Thanks
  24. Thanks
    https://handyhost.ru/help/hosting/bazyi-dannyix/kak-vyipolnit-sql-zapros.html?ysclid=m97fmow49c123290045
  25. Haha
    t_reks got a reaction from Riddick in Исправить фразу.   
    Спасибо, нашёл!

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.