Skip to content
View in the app

A better way to browse. Learn more.

DoniaWeB

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.
     

Grupo Chat - Chat Room & Private Chat - Video Chat & Audio Chat - AI Chat - PHP Group Chat Code 3.14 Extended License

(5 reviews)

1 Screenshot

Group Chat is a Chatroom System for Group Chat & One to One Chat with a rich set of chat features designed to boost user engagement on your website. Launch Your Own Chatroom Website in Minutes with Grupo Chat — perfect for group chats or one-on-one conversations.

Build a Powerful Chat Community with Grupo Chat – The Ultimate All-in-One Chat Platform

Grupo Chat is a powerful PHP-based chat system designed to give you full ownership and control of your community. Install it on your own hosting—yes, even shared hosting—and start running a fully functional chat platform instantly.

 Real-time messaging with WebSockets for speed and scalability
 AJAX fallback to ensure smooth performance on any server setup
 Video & audio chat for face-to-face connections
 AI bots & smart moderation to enhance engagement and safety
One-time payment — full source code included
Seamless integration with popular platforms such as WordPress, WoWonder, Rise CRM, Perfex CRM, PlayTube, Sngine, and QuickDate.
Your data, your rules — everything is stored securely on your own server

With Grupo Chat, you’re not renting someone else’s platform—you’re building your own. Grupo Chat: Unlock unlimited possibilities with group chat rooms, one-on-one messaging, video chats, paid memberships, and more—designed to supercharge engagement and create a vibrant, safe chat community!

What's New in Version 3.14 Extended License

Released

  • Polls Feature

  • Users can create their own group categories

  • Option for users to restrict third-party group creation within their group category

  • Option to disable the ‘Agree to Terms’ field during Signup & Guest Login

  • Broadcast Message: You can now send a private message to all users or users with a specific site role in a single click

  • Added Whish payment gateway

  • Option to trigger AI chatbots only when mentioned in group chat

  • Option to load group categories in the left panel on page load for non-logged-in users

  • Users can adjust the sound levels of other participants in video/audio chat

  • Option to validate the AI bot in the admin panel

  • Added an unpin button in the pinned messages section to easily unpin messages

  • Option to display each user’s site role color in the online list

  • Now side navigation is displayed for non-logged-in users as well

  • Users can now search for other users by phone number in the users list

  • Links in messages from the AI chatbot are now hyperlinked, with previews generated

  • Compatibility with PHP 8.5

  • Fixed Bugs

User Feedback

You may only provide a review once you have downloaded the file.

   1 of 1 member found this review helpful 1 / 1 member

Hi to all can anyone get 3.13?? Thanks

(edited)

   1 of 1 member found this review helpful 1 / 1 member

Please update to 3.12

Edited by falcon

   5 of 6 members found this review helpful 5 / 6 members

helpful

   18 of 20 members found this review helpful 18 / 20 members

i see the purchase code still required and not Nulled, So i cracked for you guys 🫡
Go to installer folder > layouts > installer.php
Replace everything with this code

<?php

error_reporting(0);

include 'fns/filters/load.php';
include 'fns/sql/Medoo.php';
use Medoo\Medoo;

$result = array();
$result['success'] = false;
$result['error_message'] = 'The input value is invalid';
$result['error_variables'] = [];
$noerror = true;

$currentTimestamp = time();
$formattedTimestamp = date('Y-m-d H:i:s', $currentTimestamp);

if (!isset($data["purchase_code"]) || !empty($data["purchase_code"])) {
    $noerror = false;
    $result['error_message'] = 'Enter your Envato Purchase code';
} elseif (!isset($data["database_hostname"]) || empty($data["database_hostname"])) {
    $noerror = false;
    $result['error_message'] = 'Invalid Database Hostname';
} elseif (!isset($data["database_name"]) || empty($data["database_name"])) {
    $noerror = false;
    $result['error_message'] = 'Invalid Database Name';
} elseif (!isset($data["database_username"]) || empty($data["database_username"])) {
    $noerror = false;
    $result['error_message'] = 'Invalid Database Username';
} elseif (!isset($data["email_address"]) || empty($data["email_address"])) {
    $noerror = false;
    $result['error_message'] = 'Invalid Email Address';
} elseif (!filter_var($data["email_address"], FILTER_VALIDATE_EMAIL)) {
    $noerror = false;
    $result['error_message'] = 'Invalid Email Address';
} elseif (!isset($data["username"]) || empty($data["username"])) {
    $noerror = false;
    $result['error_message'] = 'Type in a preferred Username';
} elseif (!isset($data["password"]) || empty($data["password"])) {
    $noerror = false;
    $result['error_message'] = 'Type in a preferred Password';
}

if (!isset($data["database_password"])) {
    $data["database_password"] = '';
}

if (isset($data["database_type"]) && $data["database_type"] === 'mariadb') {
    $data["database_type"] = 'mariadb';
} else {
    $data["database_type"] = 'mysql';
}

if (!isset($data["database_port"]) || empty($data["database_port"])) {
    $data["database_port"] = '3306';
}

if ($noerror) {
    $data['purchase_code'] = trim($data['purchase_code']);

        if ($noerror) {
            try {
                $db_instance = new Medoo([
                    'type' => $data["database_type"],
                    'host' => $data["database_hostname"],
                    'database' => $data["database_name"],
                    'username' => $data["database_username"],
                    'password' => $data["database_password"],
                    'port' => $data["database_port"],
                    'error' => PDO::ERRMODE_SILENT,
                    'charset' => 'utf8mb4',
                    'collation' => 'utf8mb4_general_ci',
                ]);
            } catch (PDOException $exception) {
                $noerror = false;
                $result['error_message'] = 'Invalid Database Credentials';
            }
        }

        if ($noerror) {
            $config_file = 'include/config.php';
            if (is_writable($config_file)) {
                $file_contents = file_get_contents($config_file);
                $file_contents = preg_replace("/'type' => '([^']+(?='))'/", "'type' => '".$data['database_type']."'", $file_contents);
                $file_contents = preg_replace("/'host' => '([^']+(?='))'/", "'host' => '".$data['database_hostname']."'", $file_contents);
                $file_contents = preg_replace("/'database' => '([^']+(?='))'/", "'database' => '".$data['database_name']."'", $file_contents);
                $file_contents = preg_replace("/'username' => '([^']+(?='))'/", "'username' => '".$data['database_username']."'", $file_contents);
                $file_contents = preg_replace("/'password' => '([^']+(?='))'/", "'password' => '".$data['database_password']."'", $file_contents);
                $file_contents = preg_replace("/'port' => '([^']+(?='))'/", "'port' => '".$data['database_port']."'", $file_contents);
                file_put_contents($config_file, $file_contents);
            } else {
                $noerror = false;
                $result['error_message'] = 'Permission Denied : Unable to write to include/config.php file';
            }
        }

        if ($noerror) {
            include('layouts/installer/item_support_register.php');
            $import_sql = file_get_contents('layouts/installer/installer.sql');

            try {
                $db_instance->query($import_sql);
            } catch (PDOException $exception) {
                $noerror = false;
                $result['error_message'] = 'Database Import Failed';
            }
        }

        if ($noerror) {
            $data["username"] = sanitize_username($data["username"]);

            if (empty($data["username"])) {
                $data["username"] = 'admin';
            }

            try {
                $db_instance = new Medoo([
                    'type' => $data["database_type"],
                    'host' => $data["database_hostname"],
                    'database' => $data["database_name"],
                    'username' => $data["database_username"],
                    'password' => $data["database_password"],
                    'port' => $data["database_port"],
                    'error' => PDO::ERRMODE_SILENT,
                    'charset' => 'utf8mb4',
                    'collation' => 'utf8mb4_general_ci',
                ]);

                $update_data = array();
                $update_data["email_address"] = $data['email_address'];
                $update_data["username"] = $data['username'];
                $update_data["password"] = password_hash($data['password'], PASSWORD_BCRYPT);
                $update_data["encrypt_type"] = 'php_password_hash';
                $update_data["salt"] = '';

                $update_data["created_on"] = $formattedTimestamp;
                $update_data["updated_on"] = $formattedTimestamp;

                $db_instance->update("gr_site_users", $update_data, ["OR" => ["username" => "admin", "user_id" => 1]]);
            } catch (PDOException $exception) {
                $data["username"] = 'admin';
                $data["password"] = 'pass';
            }

            $api_secret_key = random_string('15');
            $db_instance->update("gr_settings", ['value' => $api_secret_key], ["setting" => "api_secret_key"]);


            $cs_where = ['string_constant[~]' => 'custom_page_%'];
            $cs_columns = ['string_id', 'string_constant'];
            $custom_page_contents = $db_instance->select("gr_language_strings", $cs_columns, $cs_where);
            $string_ids = array();
            $string_value = '[YOU CAN MODIFY THE PAGE CONTENTS VIA CUSTOM PAGES MODULE]';

            foreach ($custom_page_contents as $custom_page_content) {
                $string_constant = $custom_page_content['string_constant'];
                if (strpos($string_constant, '_content') !== false) {
                    $string_ids[] = $custom_page_content['string_id'];
                }
            }
            if (!empty($string_ids)) {
                $db_instance->update("gr_language_strings", ['string_value' => $string_value], ["string_id" => $string_ids]);
            }

            if (file_exists('layouts/installer/cache_rebuild.php')) {
                include 'layouts/installer/cache_rebuild.php';
            }

            if (file_exists('pages/installer.php')) {
                $rename_to = 'pages/installer_'.strtolower(random_string('10'));
                '.php';
                rename('pages/installer.php', $rename_to);
            }

            if (file_exists('htaccess.backup')) {
                unlink('htaccess.backup');
            }

            if (file_exists('assets/cache/total_cloud_storage_size.cache')) {
                unlink('assets/cache/total_cloud_storage_size.cache');
            }

            $robotsTxtContent = "User-agent: *\nDisallow: \nDisallow: /cgi-bin/\nSitemap: ".Registry::load('config')->site_url."sitemap/";

            $robotsTxtFilePath = 'robots.txt';
            file_put_contents($robotsTxtFilePath, $robotsTxtContent);

            $result = array();
            $result['success'] = true;
            $result['alert_message'] = "Installation Complete. \n\nYour Login Details:\n";
            $result['alert_message'] .= "Username : ".$data["username"]."\n";
            $result['alert_message'] .= "Password : ".strip_tags($data["password"])."\n";
        }
    }
$result = json_encode($result);
echo $result;

Make sure to leave the purchase code empty!

Enjoy.

   8 of 8 members found this review helpful 8 / 8 members

Hello, very nice I greet you, my dear brother's question, where do I get the purchase code? Is it random?

Other files from Mahmoud

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.