| Server IP : 138.197.107.151 / Your IP : 216.73.217.120 Web Server : Apache/2.4.58 (Ubuntu) System : Linux BloxBy-Builder 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 User : wpbetasites_mrakzqskir ( 1022) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/silversharkdev/storage/framework/views/ |
Upload File : |
<?php $__env->startSection('content'); ?>
<div class="" id="result">
<div class="page-content dashboard">
<div class="container">
<div class="row">
<?php if($websites_count>0): ?>
<div class="col-12">
<div class="page-title-box d-flex align-items-center justify-content-between">
<div> <h4 class="mb-0 font-size-18 page-inner-title">Websites</h4></div>
<?php if($websites_count<$websites_limit): ?>
<div>
<a href="/" class="btn btn-outline-primary button-text cyan">Add Website</a>
</div>
<?php else: ?>
<div data-bs-toggle="tooltip" title="You have reached your maximum number of websites">
<span class="btn btn-outline-primary button-text cyan disabled" disabled>Add Website</span>
</div>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
</div>
<div class="row row-cols-1 g-4 <?php if(sizeof($websites)==0): ?>
<?php endif; ?>">
<?php $__empty_1 = true; $__currentLoopData = $websites; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $website): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?>
<div class="col-xxl-4 col-md-4">
<?php if($website->status=="completed"): ?>
<div class="card shadow-sm h-100">
<?php if($website->deleted_at): ?>
<div class="deleted-website-card" data-bs-toggle="tooltip" data-bs-placement="top" title="Your account is unverified, please verify your account">
<?php endif; ?>
<div class="card-body text-left card-inner <?php echo e($website->deleted_at ? 'pe-none' : ''); ?>">
<?php if($website->trial_mode==1): ?>
<div class="ribbon-2" style="display:none;"><span>Trial Mode</span></div>
<?php endif; ?>
<div class="dropdown-inner-x">
<?php
$server_meta = @json_decode($website->server_meta, true);
$show_drop_down = false;
$download_zip_request = null;
$menu_options = [
"ftp"=>true,
"domain"=>true,
"remove_domain"=>false,
"zip"=>true,
"download_zip"=>false
];
if(!$website->plan){
$show_drop_down = true;
}
if($website->plan){
if($website->plan->type!=="one-time"){
$menu_options["ftp"] = true;
if($website->domain==null){
$menu_options["domain"] = true;
$menu_options["remove_domain"] = false;
} else {
$menu_options["domain"] = false;
$menu_options["remove_domain"] = true;
}
$menu_options["zip"] = false;
$menu_options["download_zip"] = false;
if(!$website->domain){
$show_drop_down = true;
}
else if($website->is_cancellation_requested==1){
$show_drop_down = false;
}
} else {
$menu_options["ftp"] = true;
$menu_options["domain"] = false;
$menu_options["remove_domain"] = false;
$menu_options["zip"] = true;
$download_zip_request = $website->latestCompleteWebsiteArchiveRequest($website->id);
if($download_zip_request){
$menu_options["download_zip"] = true;
}
$show_drop_down = false;
}
}
?>
</div>
<div class="delete-inner">
<?php
$signature = @hash_hmac('sha256', "site_id_".$website->id."|email_id_info@site.com", env('WP_SSO_KEY'));
?>
<?php if(true || $website->plan || @$setting->is_wp_admin_access == 1): ?>
<a target="_blank" href="<?php echo e($website->domain && $website->domain_status=='completed' ? 'http://'.$website->domain.'/index.php/wp-json/wp/v1/autologin?payload='.$signature.'&email=info@site.com' : 'http://'.@$server_meta['domain'].'.'.config('app.SITE_DOMAIN').'/index.php/wp-json/wp/v1/autologin?payload='.$signature.'&email=info@site.com'); ?>">
<div class="web-icon">
<img src="<?php echo e(asset('assets/images/wp-black.svg')); ?>" alt="icon"/>
</div>
</a>
<?php endif; ?>
<a href="<?php echo e($website->domain && $website->domain_status=='completed' ? 'http://'.$website->domain : 'http://'.@$server_meta['domain'].'.'.config('app.SITE_DOMAIN')); ?>" target="_blank">
<div class="web-icon">
<img src="<?php echo e(asset('assets/images/web-view.svg')); ?>" alt="icon"/>
</div>
</a>
<?php if($show_drop_down): ?>
<form class="delete-icon" action="<?php echo e(route('website.remove',['id'=>$website->id])); ?>" method="POST">
<?php echo csrf_field(); ?>
<?php echo method_field('DELETE'); ?>
<button type="submit" class="btn remove_website show_confirm_message p-0" data-confirm-msg="Are you sure you want to delete this website?<div class='mt-3'>Note: Please note that once deleted, this cannot be restored.</div>" data-bs-toggle="tooltip" data-bs-placement="top" note="" title="" data-bs-original-title="">
<div class="web-icon m-0">
<img src="<?php echo e(asset('assets/images/delete-dark.svg')); ?>" alt="icon"/>
</div>
</button>
</form>
<?php endif; ?>
</div>
<!-- <div class="mb-3">
<i class="bi bi-globe2 display-4 text-primary"></i>
</div> -->
<?php /*{{asset('websites/thumbs/'.$website->thumbnail)}} */ ?>
<div class="card-img-inner">
<?php if(true || $website->thumbnail): ?>
<img class="check-image" src="https://s.wordpress.com/mshots/v1/<?php echo e($website->domain && $website->domain_status=='completed' ? urlencode('http://'.$website->domain.'/?nocache=1') : urlencode('http://'.@$server_meta['domain'].'.'.config('app.SITE_DOMAIN').'/?nocache=1')); ?>/?w=1600&h=900" />
<?php else: ?>
<iframe src="http://<?php echo e(@$server_meta['domain']); ?>.<?php echo e(config('app.SITE_DOMAIN')); ?>" frameborder="0"></iframe>
<?php endif; ?>
</div>
<div class="card-info web-flex">
<div class="content">
<h5 class="card-title"><a href="<?php echo e(route('website.details',['id'=>$website->id])); ?>"><?php echo e($website->title); ?></a></h5>
<a class="site-link" target="_blank" href="<?php echo e($website->domain && $website->domain_status=='completed' ? 'http://'.$website->domain : 'http://'.@$server_meta['domain'].'.'.config('app.SITE_DOMAIN')); ?>"><?php echo e($website->domain && $website->domain_status=='completed' ? $website->domain : @$server_meta['domain'].'.'.config('app.SITE_DOMAIN')); ?></a>
</div>
<div class="link">
<a href="<?php echo e(route('website.details',['id'=>$website->id])); ?>" class="btn btn-outline-primary button-text cyan">
Manage
</a>
</div>
<!-- <p class="card-text text-muted"><strong>Generated on:</strong> <?php echo e($website->created_at ? $website->created_at->setTimezone(env('TIMEZONE_USER'))->format('d F Y, h:i A'):"NA"); ?></p>
<p class="card-text text-muted "><strong>Size:</strong> <span class="<?php if ($website->usage > 400) {
echo 'text-danger';
} ?>"><?php echo e($website->usage ? round($website->usage,2)." mb":"Calculating.."); ?></span></p>
<?php if ($website->usage > 400) { ?><span class="<?php if ($website->usage > 400) {
echo 'text-danger';
} ?>">Your website usage has been exceeded 400mb</span><?php } ?> -->
</div>
<!-- <div class="card-btn-feature">
<a href="<?php echo e($website->domain && $website->domain_status=='completed' ? 'https://'.$website->domain : 'https://'.@$server_meta['domain'].'.'.config('app.SITE_DOMAIN')); ?>" target="_blank" class="btn btn-outline-primary button-text">
Visit Website
</a>
<?php
$signature = @hash_hmac('sha256', "site_id_".$website->id, env('WP_SSO_KEY'));
?>
<?php if($website->plan): ?>
<a href="<?php echo e($website->domain && $website->domain_status=='completed' ? 'https://'.$website->domain.'/index.php/wp-json/wp/v1/autologin?payload='.$signature : 'https://'.@$server_meta['domain'].'.'.config('app.SITE_DOMAIN').'/index.php/wp-json/wp/v1/autologin?payload='.$signature); ?>" target="_blank" class="btn btn-outline-primary button-text">
Login
</a>
<?php endif; ?>
<?php if($website->plan && $website->plan->type!=="one-time"): ?>
<?php if($website->is_cancellation_requested==0): ?>
<form class="cencel-icon" action="<?php echo e(route('website.cancel_plan',['id'=>$website->id])); ?>" method="GET" >
<button class="m-2 btn btn-secondary show_cancel_confirm_message " data-confirm-msg="<?php echo e('Are you sure that you want to cancel the current plan for the website?'); ?>" title="Cancel plan">
<i class="mdi mdi-cancel"></i>
Cancel plan
</button>
</form>
<?php else: ?>
Subscription end at: <?php echo e(\Carbon\Carbon::parse($website->subscription_end)->format('d M Y, h:i A')); ?>
<?php endif; ?>
<?php endif; ?>
<?php if(auth()->user()->email_verified_at!=null): ?>
<?php if(!$website->plan ): ?>
<a href="javascript:;" data-website-id="<?php echo e($website->id); ?>" onClick="loadPricingPlans(<?php echo e($website->id); ?>)" class="m-2 btn btn-primary button-text" title="View plans">
View Plans
</a>
<?php endif; ?>
<?php endif; ?>
</div> -->
</div>
<?php if($website->deleted_at): ?>
</div>
<?php endif; ?>
</div>
<?php elseif($website->status=="pending" || $website->status=="inprogress" || $website->status=="error"): ?>
<div class='card shadow-sm h-100 <?php echo e($website->status=="pending" || $website->status=="inprogress" ? "inprogresscard" : ""); ?> <?php echo e($website->status=="error" ? "websiteerror" : ""); ?>'>
<?php if($website->deleted_at): ?>
<div class="deleted-website-card" data-bs-toggle="tooltip" data-bs-placement="top" title="Your account is unverified, please verify your account">
<?php endif; ?>
<div class="card-body text-left card-inner <?php echo e($website->deleted_at ? 'pe-none' : ''); ?>">
<?php if($website->trial_mode==1): ?>
<div class="ribbon-1" style="display:none;"><span>Trial Mode</span></div>
<?php endif; ?>
<div class="delete-inner">
<?php
$signature = @hash_hmac('sha256', "site_id_".$website->id."|email_id_".auth()->user()->email, env('WP_SSO_KEY'));
?>
<?php if(false && ($website->plan || @$setting->is_wp_admin_access == 1)): ?>
<a target="_blank" href="<?php echo e($website->domain && $website->domain_status=='completed' ? 'https://'.$website->domain.'/index.php/wp-json/wp/v1/autologin?payload='.$signature.'&email='.urlencode(auth()->user()->email) : 'https://'.@$server_meta['domain'].'.'.config('app.SITE_DOMAIN').'/index.php/wp-json/wp/v1/autologin?payload='.$signature.'&email='.urlencode(auth()->user()->email)); ?>">
<div class="web-icon">
<img src="<?php echo e(asset('assets/images/wp-black.svg')); ?>" width="18px" alt="icon"/>
</div>
</a>
<?php endif; ?>
<?php if($website->status === 'error'): ?>
<form class="delete-icon" action="<?php echo e(route('website.remove',['id'=>$website->id])); ?>" method="POST">
<?php echo csrf_field(); ?>
<?php echo method_field('DELETE'); ?>
<button type="submit" class="btn remove_website show_confirm_message p-0" data-confirm-msg="Are you sure you want to delete this website?<div class='mt-3'>Note: Please note that once deleted, this cannot be restored.</div>" data-bs-toggle="tooltip" data-bs-placement="top" note="" title="" data-bs-original-title="">
<div class="web-icon m-0">
<img src="<?php echo e(asset('assets/images/delete-dark.svg')); ?>" alt="icon"/>
</div>
</button>
</form>
<?php endif; ?>
</div>
<div class="card-img-inner text-center p-4" style="background: #f8f9fa; display: flex; align-items: center; justify-content: center;">
<?php if($website->status === 'inprogress' || $website->status === 'pending'): ?>
<div style="width:100%">
<div class="text-primary" role="status" style="width: 100%; height: 100%;">
<img src="<?php echo e(asset('assets/images/genrate.jpg')); ?>" />
</div>
</div>
<?php endif; ?>
<?php if($website->status === 'error'): ?>
<div style="width:100%">
<div class="text-primary" role="status" style="width: 100%; height: 100%;">
Error
</div>
</div>
<?php endif; ?>
</div>
<div class="card-info web-flex">
<h5 class="card-title mt-3">
<?php echo e($website->title); ?>
<?php if($website->status === 'inprogress' || $website->status === 'pending'): ?>
<span class="badge bg-warning text-dark">In Progress</span>
<?php endif; ?>
</h5>
<?php if($website->status === 'inprogress' || $website->status === 'pending'): ?>
<div style="width:100%">
<p class=" mb-0 text-muted">This may take some time. Kindly <a href="<?php echo e(route('dashboard')); ?>">refresh</a> the page to see the latest status.</p>
</div>
<?php elseif($website->status === 'error'): ?>
<div>
<p class=" mb-0 text-muted">Some error has been occured, Please contact support.</p>
</div>
<?php endif; ?>
</div>
</div>
<?php if($website->deleted_at): ?>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?>
<!-- <div class="col" style="width: max-content !important;">
<div class="alert alert-info alert-sec">You don't have any websites yet.</div>
</div> -->
<div class="empty-web-area">
<div class="empty-caption text-center">
<h4><img class="icon" src="/assets/images/hi.svg" alt="icon"/>Hey <?php echo e(auth()->user()->name); ?>!</h4>
<h4 class="text-black text-capitalize">What would you like to generate today?</h4>
<p>Create your dream website without any code in just few minutes.</p>
</div>
<div class="web-ai">
<div class="text-center"><img class="icon" src="/assets/images/web.svg" alt="icon"/></div>
<div class="content bg-light">
<h4 class="text-black text-uppercase">generate <span>AI</span></h4>
<h2 class="text-black">Generate your website with Bloxby</h2>
<p>Get a WordPress website tailored to your needs instantly</p>
<a href="/" class="btn btn-outline-primary button-text cyan">Let's Go!</a>
</div>
</div>
</div>
<?php endif; ?>
<!-- Floating Add Button -->
</div>
</div>
</div>
<?php echo $__env->make('partials.modals.confirm_modal',['title'=>"Delete website"], \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
<?php echo $__env->make('partials.modals.sftp_modal',['title'=>"SFTP credentials"], \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
<?php echo $__env->make('partials.modals.attach_domain_modal',['title'=>"Attach domain"], \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
</div>
<div class="modal fade" id="pricingPlansModal" tabindex="-1" aria-labelledby="pricingPlansModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-body">
<div class="text-end">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div id="pricingPlansContainer">
<p class="loading-text">Loading...</p>
</div>
</div>
</div>
</div>
</div>
<?php $__env->stopSection(); ?>
<?php $__env->startPush('scripts'); ?>
<script>
var clicked_confirm_action = null;
$(".show_confirm_message").click(function(e) {
e.preventDefault();
clicked_confirm_action = $(this);
$("#confirmModal").find(".modal-body").html($(this).attr("data-confirm-msg"));
$("#confirmModal").modal("show");
})
$("#confirmYesBtn").click(function() {
clicked_confirm_action.closest("form").submit();
})
$(".show_cancel_confirm_message").click(function(e) {
e.preventDefault();
clicked_confirm_action = $(this);
$("#confirmModal").find(".modal-body").html($(this).attr("data-confirm-msg"));
$("#confirmModal").modal("show");
$("#confirmModalLabel").html("Cancel plan");
})
$(".attach-domain").click(function(e) {
e.preventDefault();
if($(this).attr("data-action")=="attach-domain"){
$("#domainForm").attr("action", $(this).attr("href"));
$("#attachDomainModal").modal("show");
} else {
loadPricingPlans($(this).attr("data-website"))
}
});
</script>
<script>
function loadPricingPlans(websiteId) {
$('#pricingPlansModal').modal('show');
$('#pricingPlansContainer').html('<div class="loader"><img src="/loader.svg"></div>');
$.ajax({
url: `/pricing-plans/website/${websiteId}/list`,
method: 'GET',
success: function(response) {
$('#pricingPlansContainer').html(response);
},
error: function() {
$('#pricingPlansContainer').html('<p class="text-danger">Failed to load plans.</p>');
}
});
}
$(".vew_sftp_credentials").on("click", function() {
$("#sftpModal").modal("show");
$.ajax({
url: "/websites/sftp", // your backend PHP route
type: "GET",
data: {
website_id: $(this).attr("data_website_id")
},
dataType: "HTML",
success: function(response) {
$("#sftpModal").find(".modal-body").html(response);
},
error: function() {
alert("Error fetching SFTP credentials.");
}
});
});
/*$(".remove_website").click(function(e){
e.preventDefault();
if(confirm("Are you sure?")){
$(this).closest('form').submit();
}
})*/
</script>
<script src="<?php echo e(asset('assets/validate/jquery.validate.min.js')); ?>"></script>
<script type="text/javascript">
$(function() {
$.validator.addMethod("domain", function(value, element) {
return this.optional(element) || /^(?!:\/\/)([a-zA-Z0-9-_]+\.)+[a-zA-Z]{2,}$/.test(value);
}, "Please enter a valid domain name (e.g., example.com)");
$("#domainForm").validate({
submitHandler: function(form) {
// Disable button to prevent duplicate submissions
$("#submitDomainBtn").prop("disabled", true);
form.submit(); // submit the form after disabling
},
rules: {
domain: {
required: true,
domain: true
}
},
messages: {
domain: {
required: "Domain name is required",
domain: "Domain must be valid (e.g., example.com, my-site.org)."
}
},
errorPlacement: function(error, element) {
error.insertAfter(element); // Default placement
}
})
});
$(document).on("change", "#recurringPlanToggle", function() {
if ($(this).prop('checked')) {
var plan_id = $(this).attr("data_plan_id");
$("#price-row-" + plan_id).html($(this).attr("data_attr_yearly_price"));
$("#plan_row_" + plan_id).html($(this).attr("data_yearly_plan_id"));
} else {
var plan_id = $(this).attr("data_plan_id");
$("#price-row-" + plan_id).html($(this).attr("data_attr_monthly_price"));
$("#plan_row_" + plan_id).html($(this).attr("data_monthly_plan_id"));
}
})
$(document).on("click", ".plan-switch", function() {
var plan = $(this).attr("data_plan");
if(plan=="yearly"){
$(".yearlyplan").hide();
$(".monthlyplan").show();
} else {
$(".yearlyplan").show();
$(".monthlyplan").hide();
}
})
</script>
<script>
function checkAndReload(img) {
const originalUrl = img.src;
fetch(`/check-mshots?url=${encodeURIComponent(originalUrl)}`)
.then(res => res.json())
.then(data => {
if (data.valid) {
console.log(`✅ ${originalUrl} is valid. Reloading...`);
//const separator = originalUrl.includes("?") ? "&" : "?";
img.src = originalUrl + "&t=1" ; // cache-busting
//img.src = originalUrl
} else {
console.log(`❌ ${originalUrl} not ready. HTTP: ${data.http_code}, redirect: ${data.redirect}`);
// Optional: retry after interval
setTimeout(() => checkAndReload(img), 5000);
}
})
.catch(err => {
console.error('Error checking mShots:', err);
setTimeout(() => checkAndReload(img), 5000);
});
}
// Apply to all images
document.querySelectorAll('.check-image').forEach(img => checkAndReload(img));
</script>
<?php $__env->stopPush(); ?>
<?php echo $__env->make('layouts.app', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /var/www/silversharkdev/resources/views/dashboard.blade.php ENDPATH**/ ?>