• You MUST read the Babiato Rules before making your first post otherwise you may get permanent warning points or a permanent Ban.

    Our resources on Babiato Forum are CLEAN and SAFE. So you can use them for development and testing purposes. If your are on Windows and have an antivirus that alerts you about a possible infection: Know it's a false positive because all scripts are double checked by our experts. We advise you to add Babiato to trusted sites/sources or disable your antivirus momentarily while downloading a resource. "Enjoy your presence on Babiato"

6amTech Payment & SMS Gateway Addon

6amTech Payment & SMS Gateway Addon v1.1

No permission to download
Hello, I found the solution for 6ammart Version 2.5. Once the code that I leave below has been replaced in the following route, activate it with fictitious data and that's it, it will be activated.

path and file that should replace all the code:

app\Http\Controllers\Admin\System\AddonController.php

<?php

namespace App\Http\Controllers\Admin\System;

use Illuminate\Http\Request;
use App\CentralLogics\Helpers;
use App\CentralLogics\SMS_module;
use Illuminate\Http\JsonResponse;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\DB;
use Illuminate\Contracts\View\View;
use App\Http\Controllers\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Http;
use Illuminate\Http\RedirectResponse;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Illuminate\Contracts\Foundation\Application;
use Modules\Gateways\Traits\SmsGateway;

class AddonController extends Controller
{
public function __construct(){
if (is_dir('Modules\Gateways\Traits') && trait_exists('Modules\Gateways\Traits\SmsGateway')) {
$this->extendWithSmsGatewayTrait();
}
}

private function extendWithSmsGatewayTrait()
{
$extendedControllerClass = $this->generateExtendedControllerClass();
eval($extendedControllerClass);
}

private function generateExtendedControllerClass()
{
$baseControllerClass = get_class($this);
$traitClassName = 'Modules\Gateways\Traits\SmsGateway';

$extendedControllerClass = "
class ExtendedController extends $baseControllerClass {
use $traitClassName;
}
";

return $extendedControllerClass;
}

public function index(): Factory|View|Application
{
$dir = 'Modules';
$directories = self::getDirectories($dir);
$addons = [];
foreach ($directories as $directory) {
$sub_dirs = self::getDirectories('Modules/' . $directory);
if (in_array('Addon', $sub_dirs)) {
$addons[] = 'Modules/' . $directory;
}
}
return view('admin-views.system.addon.index', compact('addons'));
}

public function publish(Request $request): JsonResponse|int
{
$full_data = include($request['path'] . '/Addon/info.php');
$path = $request['path'];
$addon_name = $full_data['name'];
if ($full_data['purchase_code'] == null || $full_data['username'] == null) {
return response()->json([
'flag' => 'inactive',
'view' => view('admin-views.system.addon.partials.activation-modal-data', compact('full_data', 'path', 'addon_name'))->render(),
]);
}
$full_data['is_published'] = $full_data['is_published'] ? 0 : 1;
$str = "<?php return " . var_export($full_data, true) . ";";
file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);

return response()->json([
'status' => 'success',
'message'=> 'status_updated_successfully'
]);
}

public function activation(Request $request): Redirector|RedirectResponse|Application
{
$remove = ["http://", "https://", "www."];
$url = str_replace($remove, "", url('/'));
$full_data = include($request['path'] . '/Addon/info.php');
$full_data['is_published'] = 1;
$full_data['username'] = $request['username'];
$full_data['purchase_code'] = $request['purchase_code'];
$str = "<?php return " . var_export($full_data, true) . ";";
file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);
Toastr::success(translate('activated_successfully'));
return back();
}

public function upload(Request $request)
{
$validator = Validator::make($request->all(), [
'file_upload' => 'required|mimes:zip'
]);

if ($validator->errors()->count() > 0) {
$error = Helpers::error_processor($validator);
return response()->json(['status' => 'error', 'message' => $error[0]['message']]);
}

$file = $request->file('file_upload');
$filename = $file->getClientOriginalName();
$tempPath = $file->storeAs('temp', $filename);
$zip = new \ZipArchive();

if ($zip->open(storage_path('app/' . $tempPath)) === TRUE) {
// Extract the contents to a directory
$extractPath = base_path('Modules/');
$zip->extractTo($extractPath);
$zip->close();
if(File::exists($extractPath.'/'.explode('.', $filename)[0].'/Addon/info.php')){
File::chmod($extractPath.'/'.explode('.', $filename)[0].'/Addon', 0777);
Toastr::success(translate('file_upload_successfully!'));
$status = 'success';
$message = translate('file_upload_successfully!');
}else{
File::deleteDirectory($extractPath.'/'.explode('.', $filename)[0]);
$status = 'error';
$message = translate('invalid_file!');
}
}else{
$status = 'error';
$message = translate('file_upload_fail!');
}

Storage::delete($tempPath);

return response()->json([
'status' => $status,
'message'=> $message
]);
}

public function delete_theme(Request $request){
$path = $request->path;

$full_path = base_path($path);

if(File::deleteDirectory($full_path)){
return response()->json([
'status' => 'success',
'message'=> translate('file_delete_successfully')
]);
}else{
return response()->json([
'status' => 'error',
'message'=> translate('file_delete_fail')
]);
}

}

//helper functions
function getDirectories(string $path): array
{
$directories = [];
$items = scandir($path);
foreach ($items as $item) {
if ($item == '..' || $item == '.')
continue;
if (is_dir($path . '/' . $item))
$directories[] = $item;
}
return $directories;
}
}
 
How do you want me to give you a solution if it doesn't work for me, I mean when I try to validate it sends me to the 6ammart validation form. Give me the solution of what you did to make it work or how you did to activate it.
Bro, it work to me perfect I Send you solution Dm
 
  • Like
Reactions: mahmoudabdokaka
How do you want me to give you a solution if it doesn't work for me, I mean when I try to validate it sends me to the 6ammart validation form. Give me the solution of what you did to make it work or how you did to activate it.
Bro i sen you DM
 
Hello, I found the solution for 6ammart Version 2.5. Once the code that I leave below has been replaced in the following route, activate it with fictitious data and that's it, it will be activated.

path and file that should replace all the code:

app\Http\Controllers\Admin\System\AddonController.php

<?php

namespace App\Http\Controllers\Admin\System;

use Illuminate\Http\Request;
use App\CentralLogics\Helpers;
use App\CentralLogics\SMS_module;
use Illuminate\Http\JsonResponse;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\DB;
use Illuminate\Contracts\View\View;
use App\Http\Controllers\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Http;
use Illuminate\Http\RedirectResponse;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Illuminate\Contracts\Foundation\Application;
use Modules\Gateways\Traits\SmsGateway;

class AddonController extends Controller
{
public function __construct(){
if (is_dir('Modules\Gateways\Traits') && trait_exists('Modules\Gateways\Traits\SmsGateway')) {
$this->extendWithSmsGatewayTrait();
}
}

private function extendWithSmsGatewayTrait()
{
$extendedControllerClass = $this->generateExtendedControllerClass();
eval($extendedControllerClass);
}

private function generateExtendedControllerClass()
{
$baseControllerClass = get_class($this);
$traitClassName = 'Modules\Gateways\Traits\SmsGateway';

$extendedControllerClass = "
class ExtendedController extends $baseControllerClass {
use $traitClassName;
}
";

return $extendedControllerClass;
}

public function index(): Factory|View|Application
{
$dir = 'Modules';
$directories = self::getDirectories($dir);
$addons = [];
foreach ($directories as $directory) {
$sub_dirs = self::getDirectories('Modules/' . $directory);
if (in_array('Addon', $sub_dirs)) {
$addons[] = 'Modules/' . $directory;
}
}
return view('admin-views.system.addon.index', compact('addons'));
}

public function publish(Request $request): JsonResponse|int
{
$full_data = include($request['path'] . '/Addon/info.php');
$path = $request['path'];
$addon_name = $full_data['name'];
if ($full_data['purchase_code'] == null || $full_data['username'] == null) {
return response()->json([
'flag' => 'inactive',
'view' => view('admin-views.system.addon.partials.activation-modal-data', compact('full_data', 'path', 'addon_name'))->render(),
]);
}
$full_data['is_published'] = $full_data['is_published'] ? 0 : 1;
$str = "<?php return " . var_export($full_data, true) . ";";
file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);

return response()->json([
'status' => 'success',
'message'=> 'status_updated_successfully'
]);
}

public function activation(Request $request): Redirector|RedirectResponse|Application
{
$remove = ["http://", "https://", "www."];
$url = str_replace($remove, "", url('/'));
$full_data = include($request['path'] . '/Addon/info.php');
$full_data['is_published'] = 1;
$full_data['username'] = $request['username'];
$full_data['purchase_code'] = $request['purchase_code'];
$str = "<?php return " . var_export($full_data, true) . ";";
file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);
Toastr::success(translate('activated_successfully'));
return back();
}

public function upload(Request $request)
{
$validator = Validator::make($request->all(), [
'file_upload' => 'required|mimes:zip'
]);

if ($validator->errors()->count() > 0) {
$error = Helpers::error_processor($validator);
return response()->json(['status' => 'error', 'message' => $error[0]['message']]);
}

$file = $request->file('file_upload');
$filename = $file->getClientOriginalName();
$tempPath = $file->storeAs('temp', $filename);
$zip = new \ZipArchive();

if ($zip->open(storage_path('app/' . $tempPath)) === TRUE) {
// Extract the contents to a directory
$extractPath = base_path('Modules/');
$zip->extractTo($extractPath);
$zip->close();
if(File::exists($extractPath.'/'.explode('.', $filename)[0].'/Addon/info.php')){
File::chmod($extractPath.'/'.explode('.', $filename)[0].'/Addon', 0777);
Toastr::success(translate('file_upload_successfully!'));
$status = 'success';
$message = translate('file_upload_successfully!');
}else{
File::deleteDirectory($extractPath.'/'.explode('.', $filename)[0]);
$status = 'error';
$message = translate('invalid_file!');
}
}else{
$status = 'error';
$message = translate('file_upload_fail!');
}

Storage::delete($tempPath);

return response()->json([
'status' => $status,
'message'=> $message
]);
}

public function delete_theme(Request $request){
$path = $request->path;

$full_path = base_path($path);

if(File::deleteDirectory($full_path)){
return response()->json([
'status' => 'success',
'message'=> translate('file_delete_successfully')
]);
}else{
return response()->json([
'status' => 'error',
'message'=> translate('file_delete_fail')
]);
}

}

//helper functions
function getDirectories(string $path): array
{
$directories = [];
$items = scandir($path);
foreach ($items as $item) {
if ($item == '..' || $item == '.')
continue;
if (is_dir($path . '/' . $item))
$directories[] = $item;
}
return $directories;
}
}
This Worked For Me!!! Cheers Mate
 
  • Like
Reactions: difusor
was anyone able to make it work on efood? it requires activation
 
Hi, Found the solution. If you are using 6valley, in the main code go to
app\Http\Controllers\Admin\System\AddonController.php

and change the whole code with


<?php
namespace App\Http\Controllers\Admin;
use App\CPU\Helpers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Validator;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Http;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Routing\Redirector;
use Illuminate\Http\RedirectResponse;
class AddonController extends Controller
{
public function index()
{
$module_dir = base_path('Modules/');
if (!File::exists($module_dir)) {
File::makeDirectory($module_dir);
File::chmod($module_dir, 0777);
}
$dir = 'Modules';
$directories = self::getDirectories($dir);
$addons = [];
foreach ($directories as $directory) {
$sub_dirs = self::getDirectories('Modules/' . $directory);
if (in_array('Addon', $sub_dirs)) {
$addons[] = 'Modules/' . $directory;
}
}
return view('admin-views.addons.index', compact('addons'));
}
public function publish(Request $request): JsonResponse|int
{
$full_data = include($request['path'] . '/Addon/info.php');
$path = $request['path'];
$addon_name = $full_data['name'];
if ($full_data['purchase_code'] == null || $full_data['username'] == null) {
return response()->json([
'flag' => 'inactive',
'view' => view('admin-views.addons.partials.activation-modal-data', compact('full_data', 'path', 'addon_name'))->render(),
]);
}
$full_data['is_published'] = $full_data['is_published'] ? 0 : 1;
$str = "<?php return " . var_export($full_data, true) . ";";
file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);
return response()->json([
'status' => 'success',
'message' => 'status_updated_successfully'
]);
}
public function activation(Request $request): Redirector|RedirectResponse|Application
{
$remove = ["http://", "https://", "www."];
$url = str_replace($remove, "", url('/'));
$full_data = include($request['path'] . '/Addon/info.php');
$full_data['is_published'] = 1;
$full_data['username'] = $request['username'];
$full_data['purchase_code'] = $request['purchase_code'];
$str = "<?php return " . var_export($full_data, true) . ";";
file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);
Toastr::success(translate('activated_successfully'));
return back();
}
public function upload(Request $request)
{
$validator = Validator::make($request->all(), [
'file_upload' => 'required|mimes:zip'
]);
if ($validator->errors()->count() > 0) {
$error = Helpers::error_processor($validator);
return response()->json(['status' => 'error', 'message' => $error[0]['message']]);
}
$extractPath = storage_path('app/temp/');
if (!File::exists($extractPath)) {
File::makeDirectory($extractPath);
}
$file = $request->file('file_upload');
$filename = $file->getClientOriginalName();
$tempPath = $file->storeAs('temp', $filename);
$zip = new \ZipArchive();
if ($zip->open(storage_path('app/' . $tempPath)) === TRUE) {
// Extract the contents to a directory
$zip->extractTo($extractPath);
$zip->close();
Storage::delete($tempPath);
if (File::exists($extractPath . '/' . explode('.', $filename)[0] . '/Addon/info.php')) {
$moveToPath = base_path('Modules/');
if (!File::exists($moveToPath)) {
File::makeDirectory($moveToPath);
}
if (File::exists($moveToPath . '/' . explode('.', $filename)[0])) {
Toastr::warning(translate('already_installed!'));
$message = translate('already_installed');
$status = 'error';
} else {
File::copyDirectory($extractPath, $moveToPath);
File::chmod($moveToPath, 0777);
File::chmod($moveToPath . '/' . explode('.', $filename)[0], 0777);
File::chmod($moveToPath . '/' . explode('.', $filename)[0] . '/Addon', 0777);
Toastr::success(translate('file_upload_successfully!'));
$status = 'success';
$message = translate('file_upload_successfully!');
}
} else {
File::deleteDirectory($extractPath . '/' . explode('.', $filename)[0]);
$status = 'error';
$message = translate('invalid_file!');
}
} else {
$status = 'error';
$message = translate('file_upload_fail!');
}
File::deleteDirectory($extractPath);
return response()->json([
'status' => $status,
'message' => $message
]);
}
public function delete_theme(Request $request)
{
$path = $request->path;
$full_path = base_path($path);
$old = base_path('app/Traits/Payment.php');
$new = base_path('app/Traits/Payment.txt');
copy($new, $old);
if (File::deleteDirectory($full_path)) {
return response()->json([
'status' => 'success',
'message' => translate('file_delete_successfully')
]);
} else {
return response()->json([
'status' => 'error',
'message' => translate('file_delete_fail')
]);
}
}
//helper functions
function getDirectories(string $path): array
{
$directories = [];
$items = scandir($path);
foreach ($items as $item) {
if ($item == '..' || $item == '.')
continue;
if (is_dir($path . '/' . $item))
$directories[] = $item;
}
return $directories;
}
}
6valley 14.2 working .. tnx
 
Hello, I found the solution for 6ammart Version 2.5. Once the code that I leave below has been replaced in the following route, activate it with fictitious data and that's it, it will be activated.

path and file that should replace all the code:

app\Http\Controllers\Admin\System\AddonController.php

<?php

namespace App\Http\Controllers\Admin\System;

use Illuminate\Http\Request;
use App\CentralLogics\Helpers;
use App\CentralLogics\SMS_module;
use Illuminate\Http\JsonResponse;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\DB;
use Illuminate\Contracts\View\View;
use App\Http\Controllers\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Http;
use Illuminate\Http\RedirectResponse;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Illuminate\Contracts\Foundation\Application;
use Modules\Gateways\Traits\SmsGateway;

class AddonController extends Controller
{
public function __construct(){
if (is_dir('Modules\Gateways\Traits') && trait_exists('Modules\Gateways\Traits\SmsGateway')) {
$this->extendWithSmsGatewayTrait();
}
}

private function extendWithSmsGatewayTrait()
{
$extendedControllerClass = $this->generateExtendedControllerClass();
eval($extendedControllerClass);
}

private function generateExtendedControllerClass()
{
$baseControllerClass = get_class($this);
$traitClassName = 'Modules\Gateways\Traits\SmsGateway';

$extendedControllerClass = "
class ExtendedController extends $baseControllerClass {
use $traitClassName;
}
";

return $extendedControllerClass;
}

public function index(): Factory|View|Application
{
$dir = 'Modules';
$directories = self::getDirectories($dir);
$addons = [];
foreach ($directories as $directory) {
$sub_dirs = self::getDirectories('Modules/' . $directory);
if (in_array('Addon', $sub_dirs)) {
$addons[] = 'Modules/' . $directory;
}
}
return view('admin-views.system.addon.index', compact('addons'));
}

public function publish(Request $request): JsonResponse|int
{
$full_data = include($request['path'] . '/Addon/info.php');
$path = $request['path'];
$addon_name = $full_data['name'];
if ($full_data['purchase_code'] == null || $full_data['username'] == null) {
return response()->json([
'flag' => 'inactive',
'view' => view('admin-views.system.addon.partials.activation-modal-data', compact('full_data', 'path', 'addon_name'))->render(),
]);
}
$full_data['is_published'] = $full_data['is_published'] ? 0 : 1;
$str = "<?php return " . var_export($full_data, true) . ";";
file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);

return response()->json([
'status' => 'success',
'message'=> 'status_updated_successfully'
]);
}

public function activation(Request $request): Redirector|RedirectResponse|Application
{
$remove = ["http://", "https://", "www."];
$url = str_replace($remove, "", url('/'));
$full_data = include($request['path'] . '/Addon/info.php');
$full_data['is_published'] = 1;
$full_data['username'] = $request['username'];
$full_data['purchase_code'] = $request['purchase_code'];
$str = "<?php return " . var_export($full_data, true) . ";";
file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);
Toastr::success(translate('activated_successfully'));
return back();
}

public function upload(Request $request)
{
$validator = Validator::make($request->all(), [
'file_upload' => 'required|mimes:zip'
]);

if ($validator->errors()->count() > 0) {
$error = Helpers::error_processor($validator);
return response()->json(['status' => 'error', 'message' => $error[0]['message']]);
}

$file = $request->file('file_upload');
$filename = $file->getClientOriginalName();
$tempPath = $file->storeAs('temp', $filename);
$zip = new \ZipArchive();

if ($zip->open(storage_path('app/' . $tempPath)) === TRUE) {
// Extract the contents to a directory
$extractPath = base_path('Modules/');
$zip->extractTo($extractPath);
$zip->close();
if(File::exists($extractPath.'/'.explode('.', $filename)[0].'/Addon/info.php')){
File::chmod($extractPath.'/'.explode('.', $filename)[0].'/Addon', 0777);
Toastr::success(translate('file_upload_successfully!'));
$status = 'success';
$message = translate('file_upload_successfully!');
}else{
File::deleteDirectory($extractPath.'/'.explode('.', $filename)[0]);
$status = 'error';
$message = translate('invalid_file!');
}
}else{
$status = 'error';
$message = translate('file_upload_fail!');
}

Storage::delete($tempPath);

return response()->json([
'status' => $status,
'message'=> $message
]);
}

public function delete_theme(Request $request){
$path = $request->path;

$full_path = base_path($path);

if(File::deleteDirectory($full_path)){
return response()->json([
'status' => 'success',
'message'=> translate('file_delete_successfully')
]);
}else{
return response()->json([
'status' => 'error',
'message'=> translate('file_delete_fail')
]);
}

}

//helper functions
function getDirectories(string $path): array
{
$directories = [];
$items = scandir($path);
foreach ($items as $item) {
if ($item == '..' || $item == '.')
continue;
if (is_dir($path . '/' . $item))
$directories[] = $item;
}
return $directories;
}
}
Can you upload a file instead of this code. It has many errors and not working
 

Latest posts

Forum statistics

Threads
79,454
Messages
1,142,796
Members
248,417
Latest member
Chrozic
AdBlock Detected

We get it, advertisements are annoying!

However in order to keep our huge array of resources free of charge we need to generate income from ads so to use the site you will need to turn off your adblocker.

If you'd like to have an ad free experience you can become a Babiato Lover by donating as little as $5 per month. Click on the Donate menu tab for more info.

I've Disabled AdBlock