Загрузка...

Focus Messenger - скрипт Мессенджера на PHP

Тема в разделе Backend создана пользователем osip 4 июл 2024. 753 просмотра

Загрузка...
  1. osip
    osip Автор темы 4 июл 2024 Заблокирован(а) 4 10 сен 2019
    Вступление
    Focus Messenger - надежный мессенджер с SSL шифрованием для безопасного обмена сообщениями и ведения служебной переписки. Гарантируем защиту данных, конфиденциальность и приватность ваших разговоров.
    Однако, из-за того что верхушка оборонного сектора в основном некомпитентные и необразованные "Офицеры" которые привыкли работать по старинке, проект далеко не ушёл. В связи с чем, я предоставляю исходный код и сам проект на общее обозрение пользователям. Вдруг если кто-то захочет использовать его в своей структуре.

    Функционал
    1. Авторизация
    2. Регистрация
    3. Настройки (управление профилем)
    4. Ведение переписки (диалоги и личные сообщения)
    5. Поиск пользователей
    6. Прикрепление документов (файлов, видео и т.п.)
    7. Портал FOCUS
    8. Массовая рассылка
    9. Панель управления
    10. Мульти-язычная система
    Идея и концепция дизайна
    При создание дизайна системы, я опирался на Веб версию WhatsApp, чтобы людям максимально было комфортно и понятно. Помимо этого, был добавлен визуальный адаптив для мобильных устройств.

    Другие функции
    1. Система адаптирована на 3 языка (русский, английский и казахский), чтобы добавить свой кастомный язык, вам потребуется создать файл в директории /application/system/languages/*.json:
      JSON
      {
      "auth_register": "РЕГИСТРАЦИЯ",
      "auth_register_label": "Нет профиля?",
      "auth_welcome": "Добро пожаловать в %s",
      "auth_welcome_label": "Вход в Мессенджер",
      "auth_form_login": "Введите логин",
      "auth_form_login_title": "Только латиница, цифры, тире и нижнее подчеркивание",
      "auth_form_password": "Введите пароль",
      "auth_form_button": "Войти",
      "auth_form_button_register": "Регистрация",

      "reg_auth": "ВОЙТИ НА САЙТ",
      "reg_auth_label": "Есть профиль?",
      "reg_welcome": "Добро пожаловать в %s",
      "reg_welcome_label": "Регистрация в Мессенджере",
      "reg_form_firstname": "Как вас зовут?",
      "reg_form_firstname_title": "Только кириллица и казахский алфавит",
      "reg_form_lastname": "Какая у вас фамилия?",
      "reg_form_lastname_title": "Только кириллица и казахский алфавит",
      "reg_form_login": "Введите логин",
      "reg_form_login_title": "Только латиница, цифры, тире и нижнее подчеркивание",
      "reg_form_password": "Введите пароль",
      "reg_form_button": "Продолжить",
      "reg_form_button_auth": "Уже есть профиль?",
      "reg_info": "Успешная регистрация",
      "reg_welcome": "Добро пожаловать!",
      "reg_error_login": "Неверный логин или пароль",

      "messenger_header_search_tooltips": "Поиск",
      "messenger_header_share_tooltips": "Массовая рассылка",
      "messenger_info_dialogs": "<p>Выберите диалог</p><p>чтобы начать переписку</p>",
      "messenger_write_text": "Введите сообщение",
      "messenger_you": "Вы: %s",

      "settings_t1": "Основные настройки",
      "settings_t1_image": "Изменение изображения",
      "settings_t1_name": "Смена имени",
      "settings_t1_password": "Смена пароля",
      "settings_t1_firstname": "Ваше имя",
      "settings_t1_firstname_title": "Только кириллица и казахский алфавит",
      "settings_t1_lastname": "Ваша фамилия",
      "settings_t1_lastname_title": "Только кириллица и казахский алфавит",
      "settings_t1_password_last": "Старый пароль",
      "settings_t1_password_new": "Новый пароль",
      "settings_t1_password_confirm": "Подтвердите пароль",
      "settings_t1_language": "Смена языка",

      "error_no_peer": "Диалог не найден",
      "error_no_user": "Пользователь не найден",
      "error_self": "<p>Нельзя писать самому себе</p><p>выберите другой диалог</p>",
      "error_rights": "Недостаточно прав",
      "error_logs": "Произошла ошибка, обратитесь в поддержку",
      "error_people": "Запрашиваемый пользователь не найден",

      "search_title": "Поиск",
      "search_placeholder": "Имя, фамилия или логин",
      "search_result_no": "Ничего нет",
      "search_error": "Ничего не найдено",

      "portal_nav_guides": "Справочник",
      "portal_nav_login": "Войти",
      "portal_nav_logout": "Выйти",

      "portal_guides_title": "Справочник",
      "portal_guides_01_title": "1. Ведение служебной переписки",
      "portal_guides_01_content": "<p><b>1.</b> Пройдите этап регистрации, либо авторизации <i>(если ранее учётная запись уже была создана)</i><p><p><b>2.</b> После успешного входа, у вас откроется страница Мессенджера.<br><u>Этап 1</u> В правом углу <i>(от логотипа)</i> есть Карандаш<br><u>Этап 2</u> после которого у вас появится окно с поиском учётных записей <i>(введите нужное вам имя и фамилию и нажмите ENTER)</i>.<br><u>Этап 3</u> У вас появится список пользователей, которых можно будет выбрать для начала обмена информацией.</i><p><img src='/public/images/system/guides/i1-1.jpg'>",
      "portal_guides_02_title": "2. Форматы документов для осуществления отправки",
      "portal_guides_02_content": "<b>Изображения:</b> jpeg, jpg, png, gif, webp<br><b>Видео:</b> mp4, avi, webm, mpeg<br><b>*********:</b> doc, docx, xlsx, xls, txt, xml, pdf, jar<br><b>Архивы:</b> zip, 7z, rar, tar, gzip",
      "portal_guides_03_title": "3. Максимально допустимый размер документа для загрузки",
      "portal_guides_03_content": "Сервер позволяет принимать файл размером: <b>%s</b>",

      "backstage_auth": "Сначала пройдите авторизацию",
      "backstage_guest": "Вы уже авторизованы",
      "backstage_clip_no_user": "Получатель не найден!",

      "routing_messenger": "Мессенджер",
      "routing_auth": "Вход на сайт",
      "routing_register": "Регистрация",
      "routing_settings": "Настройки",
      "routing_guides": "Справочник",

      "dialogs_fill": "Заполните название Беседы",
      "dialogs_not": "Диалогов нет",

      "uploads_expansion": "Недопустимый формат документа",
      "uploads_size": "Некоторые файлы не отправлены из-за ограничений по размеру",
      "uploads_deleted": "Вложение удалено",

      "users_error_login": "Некорректно указан логин",
      "users_error_valid": "Данный логин уже занят",
      "users_error_firstname": "Некорректно указано имя",
      "users_error_lastname": "Некорректно указано фамилия",
      "users_message_login": "Неверный логин или пароль",
      "users_message_approved": "Профиль не активирован",

      "settings_error_expansion": "Недопустимый формат документа",
      "settings_error_size": "Размер превышает %s",
      "settings_error_firstname": "Некорректно указано имя",
      "settings_error_lastname": "Некорректно указано фамилия",
      "settings_error_password": "Проверьте правильность пароля",
      "settings_error_new_password": "Новый пароль не должен совпадать со старым",
      "settings_error_last_password": "Неверный старый пароль",
      "settings_info": "Данные обновлены",

      "messenger_error_valid": "Вы ничего не написали",
      "messenger_error_lenght": "Длина сообщения превышает допустимое значение",
      "messenger_error_message": "Сообщений нет",
      "messenger_error_clip": "Вложение",

      "system_exit": "Вы действительно хотите покинуть страницу? Тогда отправляемый вами файл не попадёт в чат.",
      "system_processing": "Прошлый запрос еще в обработке",
      "system_send_docs": "Документ успешно отправлен",
      "system_change": "Изменить",
      "system_back": "Назад",
      "system_online": "В сети",
      "system_offline": "Не в сети",
      "system_no_dialog": "Запрашиваемый диалог не найден",
      "system_chrome": "Для корректной работы системы, требуется использование",
      "system_action_not_valid": "Действите временно недоступно",

      "admin_route_index": "Основные настройки",
      "admin_route_people": "Участники",
      "admin_route_files": "*********",

      "admin_nav_index": "Основные настройки",
      "admin_nav_users": "Участники",
      "admin_nav_files": "*********",

      "admin_index_name": "Основные настройки",
      "admin_index_sitename": "Название сайта",
      "admin_index_keywords": "Ключевые слова",
      "admin_index_description": "Описание сайта",
      "admin_index_approved": "Подтверждение регистрации",
      "admin_index_approved_yes": "Требуется",
      "admin_index_approved_no": "Не требуется",
      "admin_index_license": "Ключ лицензии",

      "admin_people_firstname": "Имя",
      "admin_people_lastname": "Фамилия",

      "admin_people_stats_register": "Дата регистрации",
      "admin_people_stats_online": "Последний онлайн",
      "admin_people_stats_docs": "Загружено документов",

      "admin_message_resetpassword_title": "Подтверждение действия",
      "admin_message_resetpassword": "Вы действительно хотите сбросить пароль пользователя?",
      "admin_message_reset": "Сбросить",
      "admin_message_reset_placeholder": "Введите новый пароль",
      "admin_message_close": "Отмена",
      "admin_message_back": "Назад",
      "admin_message_reset_btn": "Сбросить пароль",
      "admin_message_remove_btn": "Удалить",
      "admin_message_confirm": "Одобрить",
      "admin_message_confirm_message": "Профиль подтверждён",

      "admin_reset_title": "Уведомление",
      "admin_reset_content": "Пароль должен быть не менее 4 символов",

      "admin_remove_btn": "Удалить",
      "admin_remove_title": "Подтверждение",
      "admin_remove_content": "Вы действительно хотите удалить учётную запись?",
      "admin_remove_message": "Учётная успешно запись удалена",

      "functions_phpaction": "Прямой вызов скрипта",
      "functions_csrf_token": "Ошибка токена",
      "functions_unknown": "Неизвестно",
      "functions_past_sec": "%s секунд назад",
      "functions_past_min": "%s минут назад",
      "functions_hour": "час",
      "functions_hour_s": "часа",
      "functions_hours": "часов",
      "functions_back": "%s %s назад",
      "functions_yesterday": "Вчера в %s",
      "functions_month": "%s в %s часов",

      "month_little_01": "Янв",
      "month_little_02": "Фев",
      "month_little_03": "Март",
      "month_little_04": "Апр",
      "month_little_05": "Май",
      "month_little_06": "Июн",
      "month_little_07": "Июл",
      "month_little_08": "Авг",
      "month_little_09": "Сен",
      "month_little_10": "Окт",
      "month_little_11": "Нояб",
      "month_little_12": "Дек",

      "admin_file_table": "Загруженный материал",
      "admin_file_table_01": "Отправитель",
      "admin_file_table_02": "Получатели",
      "admin_file_table_03": "Дата",
      "admin_file_table_04": "Размер",
      "admin_file_table_05": "Документ",
      "admin_file_table_06": "Результат сканирования",

      "admin_disk_max_volume": "Всего памяти",
      "admin_disk_volume": "Доступно",
      "admin_disk_percent": "Загруженность",
      "admin_disk_no_rows": "<li style='padding: 20px; text-align: center;'>Список пуст</li>",
      "admin_disk_no_search": "<li style='padding: 20px; text-align: center;'>Файлы не найдена</li>",

      "micro_panel_01": "Панель управления",
      "micro_panel_02": "Справочник",
      "micro_panel_03": "Выход",
      "micro_panel_04": "Настройки",

      "scan_result_success": "Проверен",
      "scan_result_wait": "Ожидается",
      "scan_result_tech": "Нет возможности",

      "modal_remove_message_title": "Удаление сообщения",
      "modal_remove_message_content": "Вы действительно хотите удалить сообщение?",
      "modal_remove_message_btn": "Да",
      "modal_remove_message_close": "Отмена"
      }
    2. Добавить язык в файл start.php
      PHP
      $lang = new Language;
      $lang->loadLanguageFromFile('ru', 'ru.json');
      $lang->loadLanguageFromFile('kz', 'kz.json');
      $lang->loadLanguageFromFile('en', 'en.json');


      Скриншоты
    [IMG]
    [IMG][IMG][IMG][IMG][IMG][IMG]

    Системные требования
    1. Сервер на Nginx или Apache (тесты и разработка проводились на Apache)
    2. PHP не ниже 7.4 с Memcached сервером (обязательно, адрес и порт указываются в файле start.php 43 и 44 строка)
      PHP
      $memcached = new Memcached();
      $memcached->addServer('127.0.0.1', 11211);
    3. База данных MySQL (тесты и разработка проводились на MySQL 8.2)
    Установка и настройка
    1. Скачать систему по ссылке
    2. Создайте базу данных в MySQL и импортируйте dump.sql из главной директории;
    3. Пропишите сведения о базе данных в файле: /application/configs/database.php
    4. Запустите сервер Memcached и внесите сведения в файле /application/start.php
    Мои контакты для связи
    Все свежие контакты указаны в профиле на сайте, либо Телеграм. Работаю на заказ, могу по вашим вкусам внести правки или доработке по системе, взяться за персональный заказ. Все за отдельную плату.

    Внимание! Проект работает как на VDS/VPS, так и на обычном веб хостинге (если он поддерживает Memcached), если хостинг не поддерживает Memcached, тогда вам потребуется вырезать из скрипта взаимодействие с Memcached на уровне Библиотек. Если вдруг это нужно будет большому количеству пользователей, я это сделаю и опубликую в посте.
     
  2. Karentata58
     
    1. osip Автор темы
      Karentata58,

  3. 033gml
    033gml 19 июл 2024 0 19 июл 2024
    Доброго времени! Подскажите пожалуйста, как можно вырезать из скрипта взаимодействие с Memcached на уровне Библиотек? Может у вас есть инструкция как это сделать?
     
    1. osip Автор темы
      033gml, сверху лежит ссылка на без memcached
    2. 033gml
      osip, спасибо, но я тут новенький и для просмотра скрытой информации необходимо провести 120 дней на форуме
  4. korobko88
    korobko88 4 янв 2025 0 30 апр 2022
    Маловато функций, а так огонь!
     
  5. barbados_men
    Пишет "Ошибка загрузки ru языка!"
     
Top