OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2025 11:18:49 AM
rwxr-xr-x
📄
.htaccess
860 bytes
12/09/2024 12:36:01 PM
rw-r--r--
📁
.vscode
-
11/09/2024 12:33:02 PM
rwxrwxr-x
📄
12-03-25index.php
42.58 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
13-03-25index.php
56.24 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
13-03-25premium.php
18.76 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
14-4-25-whatsappBot
-
05/19/2025 10:07:21 AM
rwxr-xr-x
📄
15-4-25-index.php
54.17 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
23-04-25stream.php
70.87 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
3-4-25-index.php
62.26 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
9_12_24index.html
11.48 KB
12/09/2024 05:56:43 AM
rw-r--r--
📄
A_index.php
65.56 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
Arv_stream.php
67.28 KB
05/19/2025 10:07:22 AM
rw-r--r--
📁
CreateLeadPage
-
05/19/2025 10:07:15 AM
rwxr-xr-x
📁
CreateLeadPage_back
-
05/19/2025 10:07:19 AM
rwxr-xr-x
📁
CreatePage
-
05/19/2025 10:07:15 AM
rwxrwxrwx
📄
ImageMagick-7.1.1-45-Q16-HDRI-x64-dll.exe
22.2 MB
03/17/2025 09:25:42 AM
rw-r--r--
📁
NLEditor
-
05/19/2025 10:07:22 AM
rwxr-xr-x
📄
Scheduled_posts.php
49.78 KB
06/16/2025 08:52:51 AM
rw-r--r--
📁
Xpress
-
05/19/2025 10:07:17 AM
rwxr-xr-x
📄
XpressPage.php
47.18 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
Xpress_backup
-
05/19/2025 10:07:19 AM
rwxrwxrwx
📄
about.html
3.7 KB
12/10/2024 09:17:27 AM
rw-r--r--
📄
account.php
56.45 KB
06/17/2025 10:30:23 AM
rw-r--r--
📄
activate.php
4.63 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
add_channel.php
9.71 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
add_to_channel.php
980 bytes
05/19/2025 10:07:22 AM
rw-r--rw-
📁
admin
-
05/19/2025 10:07:22 AM
rwxrwxr-x
📄
analytics.php
38.23 KB
05/19/2025 10:07:19 AM
rw-rw-r--
📁
api
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
arvind_index.php
4.44 KB
05/19/2025 10:07:15 AM
rw-r--r--
📁
assets
-
04/17/2025 09:15:05 AM
rwxrwxr-x
📁
audio
-
05/27/2025 07:33:37 AM
rwxrwxrwx
📁
avatars
-
04/14/2025 06:26:27 PM
rwxr-xr-x
📁
aws-ses
-
05/19/2025 10:07:21 AM
rwxr-xr-x
📄
b_account.php
45.4 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
b_himanshu_process_data.php
5.02 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
b_himanshu_stream.php
70.67 KB
05/19/2025 10:07:21 AM
rw-r--r--
📄
b_settings.php
74.3 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
baccount.php
38.98 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
back_\index.php
40.34 KB
05/19/2025 10:07:15 AM
rw-r--r--
📁
back_aws-ses
-
05/19/2025 10:07:22 AM
rwxr-xr-x
📁
back_whatsappBot
-
05/19/2025 10:07:16 AM
rwxrwxrwx
📄
badd_channel.php
10.01 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
bfeatured_channels.php
31.33 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
bfeatured_topics.php
28.47 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
blogInCheck.php
2.12 KB
05/19/2025 10:07:21 AM
rw-rw-r--
📄
bsign-in.php
21.47 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
businessLp.php
46.33 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
bussLp.php
57.87 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
card-news.php
6.39 KB
05/19/2025 10:07:22 AM
rw-rw-r--
📄
channel.php
60.43 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
chattest.php
8.8 KB
05/19/2025 10:07:19 AM
rw-rw-r--
📄
checkSession.php
1.52 KB
05/19/2025 10:07:19 AM
rw-r--r--
📁
clients
-
05/19/2025 10:07:22 AM
rwxr-xr-x
📄
collections.php
94.92 KB
05/19/2025 10:07:21 AM
rw-r--r--
📄
comments.php
1.67 KB
05/19/2025 10:07:21 AM
rw-rw-r--
📄
composer.json
101 bytes
03/25/2025 08:44:52 AM
rw-rw-r--
📄
composer.lock
5.68 KB
03/25/2025 08:44:51 AM
rw-rw-r--
📄
contact.html
3.44 KB
03/12/2025 11:48:10 AM
rw-r--r--
📄
cookie.php
750 bytes
05/19/2025 10:07:19 AM
rw-r--r--
📄
copytest.html
4.05 KB
11/09/2024 12:48:18 PM
rw-rw-r--
📁
creamAdmin
-
05/19/2025 10:07:22 AM
rwxr-xr-x
📄
cream_dashboard.php
26.3 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
creamapi
-
05/19/2025 10:07:22 AM
rwxr-xr-x
📄
create.php
43.85 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
created_magazine.html
11.96 KB
11/09/2024 12:48:18 PM
rw-rw-r--
📄
dashboard.php
55.97 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
data
-
05/19/2025 10:07:13 AM
rwxrwxrwx
📄
dbms.php
492.73 KB
05/20/2025 01:55:35 PM
rw-r--r--
📄
down.html
1.23 KB
11/12/2024 02:39:28 AM
rw-r--r--
📄
edit_post.php
2.19 KB
06/13/2025 12:59:41 PM
rw-r--r--
📄
featured_channels.php
32.68 KB
05/19/2025 10:07:21 AM
rw-r--r--
📄
featured_topics.php
26.66 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
fetch_articles.php
1.83 KB
05/19/2025 10:07:22 AM
rw-rw-r--
📄
fetch_liked_users.php
1.55 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
files_with_warning.txt
25.17 KB
05/19/2025 10:06:22 AM
rw-r--r--
📄
filter.php
4.92 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
follow_action.php
1.7 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
follow_dash.php
33.92 KB
05/19/2025 10:07:22 AM
rw-r--r--
📁
form-builder
-
05/19/2025 10:07:19 AM
rwxr-xr-x
📄
function.php
20.61 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
gemini.php
38.21 KB
05/19/2025 10:07:17 AM
rw-r--r--
📁
genai
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
generated_article.php
11.92 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
get_recent_items.php
1.37 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
groupchat
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📄
handle_channel.php
856 bytes
05/19/2025 10:07:13 AM
rw-r--rw-
📄
himanshu_)newsletter.php
23.31 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
himanshu_analytics.php
28.88 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
himanshu_process_data.php
6.46 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
himanshu_stream.php
72.33 KB
05/19/2025 10:07:15 AM
rw-r--r--
📁
hindiConverter
-
05/19/2025 10:07:19 AM
rwxr-xr-x
📄
homePin.php
68.59 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
hps
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
impmy_collection.php
124.44 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
inc
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📄
index.php
54.5 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
influencer.php
12.23 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
interface
-
05/19/2025 10:07:15 AM
rwxr-xr-x
📄
ipsh.php
1.52 KB
05/22/2025 07:25:43 AM
rw-r--r--
📁
kannada
-
05/19/2025 10:07:15 AM
rwxrwxr-x
📄
knobly_logo.png
9.45 KB
03/18/2025 08:18:45 AM
rw-r--r--
📁
knobly_scribe
-
05/19/2025 10:07:19 AM
rwxr-xr-x
📁
knoblysocial
-
05/19/2025 10:07:16 AM
rwxrwxrwx
📄
landing_page.php
17.3 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
landing_signin.php
5.14 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
landingpage
-
03/02/2025 02:01:39 PM
rwxr-xr-x
📁
leadpage
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
link.php
5.63 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
log.txt
60 bytes
04/25/2025 09:10:22 AM
rw-r--r--
📄
logInCheck.php
7.33 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
loggedInCheck.php
1.15 KB
05/19/2025 10:07:19 AM
rw-rw-r--
📄
logo (1).svg
814 bytes
01/16/2025 05:26:43 AM
rw-r--r--
📄
logout.php
1.14 KB
05/19/2025 10:07:15 AM
rw-rw-r--
📄
magazine.html
4.6 KB
11/09/2024 12:48:19 PM
rw-rw-r--
📄
magazine.php
23.69 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
more.php
9.62 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
my_collection.php
153.95 KB
06/04/2025 06:38:10 AM
rw-r--r--
📄
my_collection_backup.php
149.76 KB
05/19/2025 10:07:21 AM
rw-r--r--
📄
my_settings.php
17.57 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
navbar.php
3.36 KB
05/19/2025 10:07:21 AM
rw-r--r--
📄
new-page.php
15.14 KB
06/04/2025 09:56:42 AM
rw-r--r--
📄
newEditor.php
17.04 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
new_cream
-
05/19/2025 10:07:21 AM
rwxr-xr-x
📁
new_ui
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
newsletter.php
24.9 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
old_sendy
-
05/19/2025 10:07:16 AM
rwxr-xr-x
📄
old_stream.php
94.19 KB
05/19/2025 10:07:22 AM
rw-r--r--
📁
pageLanding
-
02/04/2025 01:03:32 PM
rwxr-xr-x
📁
pages
-
05/19/2025 10:07:13 AM
rwxrwxrwx
📄
payment.php
29.87 KB
05/20/2025 02:34:50 PM
rw-r--r--
📁
pdf
-
03/12/2025 12:11:01 PM
rwxr-xr-x
📄
pdftk_server-2.02-win-setup.exe
2.91 MB
03/17/2025 09:44:38 AM
rw-r--r--
📄
persona_submit.php
963 bytes
05/19/2025 10:07:13 AM
rw-r--r--
📄
personaform.php
7.03 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
post-details.php
38.06 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
ppayment.php
31.42 KB
05/20/2025 01:52:50 PM
rw-r--r--
📄
premium.php
21.88 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
premium_test.php
28.94 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
privacy.html
12.52 KB
12/10/2024 09:17:06 AM
rw-r--r--
📄
private_channel.php
10.06 KB
06/04/2025 07:19:28 AM
rw-r--r--
📄
private_dashboard.php
56.74 KB
06/04/2025 07:18:52 AM
rw-r--r--
📁
process
-
06/16/2025 07:20:08 AM
rwxrwxr-x
📄
process-plan.php
1.44 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
process-scheduled-posts.php
2.02 KB
06/13/2025 01:08:04 PM
rw-r--r--
📄
process.php
1.47 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
process_data.php
5.21 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
profile.php
38.01 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
profile_pic_upload.php
4.85 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
profile_test.php
19.88 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
publish_scheduled_posts.php
1.17 KB
05/19/2025 10:07:21 AM
rw-r--r--
📁
quiz
-
05/19/2025 10:07:16 AM
rwxr-xr-x
📁
reader
-
03/04/2025 08:32:49 AM
rwxr-xr-x
📄
reader.php
67.62 KB
05/19/2025 10:07:15 AM
rw-r--r--
📁
reels
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
referralInfo.php
5.88 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
referralProcess.php
1.07 KB
05/19/2025 10:07:21 AM
rw-r--r--
📄
refund.html
9.47 KB
02/17/2025 10:22:24 AM
rw-r--r--
📄
replyPost.php
3.93 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
report
-
05/19/2025 10:07:21 AM
rwxr-xr-x
📄
request_article.php
24.18 KB
05/19/2025 10:07:19 AM
rw-rw-r--
📄
reset.html
5.09 KB
11/12/2024 04:10:05 AM
rw-r--r--
📄
revsh.php
71 bytes
05/20/2025 03:42:26 PM
rw-r--r--
📄
save_profile.php
2.78 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
saved.php
34.49 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
schedule-post.php
1.49 KB
06/13/2025 01:07:17 PM
rw-r--r--
📄
search_bar.php
17.52 KB
05/19/2025 10:07:21 AM
rw-r--r--
📁
sendy
-
05/27/2025 10:22:07 AM
rwxr-xr-x
📄
settings.php
82.29 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
share.html
2.4 KB
05/08/2025 09:43:24 AM
rw-r--r--
📄
sharemarket.php
3.94 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
showcase.php
10.62 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
shreyasStream.php
68.54 KB
05/19/2025 10:07:19 AM
rw-r--r--
📁
side_navbar_testing
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
sign-in.php
47.67 KB
06/17/2025 10:29:25 AM
rw-r--r--
📄
signInProcess.php
13.91 KB
06/17/2025 10:17:00 AM
rw-rw-r--
📄
signInProcess_backup.php
11.12 KB
05/19/2025 10:07:19 AM
rw-r--r--
📁
social_media
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
start.html
3.99 KB
12/13/2024 10:07:49 AM
rw-rw-r--
📄
store_articles.php
987 bytes
05/19/2025 10:07:19 AM
rw-rw-r--
📄
stream.php
94.49 KB
06/16/2025 11:47:53 AM
rw-r--r--
📄
streamPush.php
30.16 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
submit.php
734 bytes
05/19/2025 10:07:19 AM
rw-r--r--
📄
test.php
1.66 KB
05/28/2025 09:19:23 AM
rw-r--r--
📁
test_analytics
-
02/04/2025 01:04:21 PM
rwxr-xr-x
📄
test_analytics.php
35.92 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
test_create.php
40.38 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
test_create_LP.php
14.07 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
test_index.php
56.5 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
test_new-page.php
1.61 KB
05/24/2025 05:28:20 PM
rw-r--r--
📄
test_new_analytics.php
35.92 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
test_premium.php
14.65 KB
05/19/2025 10:07:21 AM
rw-r--r--
📄
test_profile.php
14.55 KB
05/19/2025 10:07:22 AM
rw-rw-r--
📄
test_request_article.php
28.23 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
test_search_bar.php
12.27 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
texttovoice
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📁
thumbsUp
-
05/19/2025 10:07:19 AM
rwxrwxr-x
📄
toggle_channel.php
2.28 KB
05/19/2025 10:07:17 AM
rw-r--r--
📁
transcript
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
udupi_sign_up.php
34.95 KB
05/19/2025 10:07:17 AM
rw-r--r--
📁
uploads
-
06/17/2025 05:35:56 PM
rwxrwxrwx
📄
usage.html
38.19 KB
12/13/2024 09:43:08 AM
rw-r--r--
📄
userActivity.php
13.61 KB
05/19/2025 10:07:22 AM
rw-r--r--
📁
vendor
-
05/19/2025 10:07:19 AM
rwxrwxr-x
📄
verify.php
744 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📄
version2_landing_page.php
23.08 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
videoAI
-
05/19/2025 10:07:19 AM
rwxr-xr-x
📁
videoAI21-1-25
-
05/19/2025 10:07:22 AM
rwxrwxrwx
📁
videoAII
-
05/19/2025 10:07:22 AM
rwxr-xr-x
📁
videoTest
-
05/19/2025 10:07:17 AM
rwxrwxrwx
📄
videotest.php
13.18 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
videotest1.php
6.36 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
videotesting.php
9.71 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
view.php
13.63 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
view_newsletter.php
1.58 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
websh.php
31 bytes
05/22/2025 07:17:21 AM
rw-r--r--
📁
weeklyEmail
-
06/16/2025 11:41:02 AM
rwxrwxrwx
📁
whatsappBot
-
05/19/2025 10:07:16 AM
rwxrwxrwx
📁
whisper
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📁
xpress_landing_page
-
05/19/2025 10:07:22 AM
rwxr-xr-x
📄
xpress_landing_page.php
78.63 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
xpress_landingpage.html
11.15 KB
01/06/2025 05:55:54 AM
rw-r--r--
📄
zanalytics.php
36.93 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
zgemini.php
15.07 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
zindex.php
61.38 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
znewsletter.php
23.45 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
zoomstream.php
73.73 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
zsign-in.php
29.71 KB
05/19/2025 10:07:13 AM
rw-r--r--
📁
zvideoAI
-
05/19/2025 10:07:15 AM
rwxr-xr-x
📁
zzXpress
-
05/19/2025 10:07:24 AM
rwxr-xr-x
📄
zzcreate.php
35.33 KB
05/19/2025 10:07:22 AM
rw-r--r--
📄
zznewsletter.php
23.36 KB
05/19/2025 10:07:19 AM
rw-r--r--
Editing: himanshu_analytics.php
Close
<? // Cream: Analytics // require_once '../inc/validate.logged.php'; // require_once '../inc/config.php'; require_once 'assets/php/validate.logged.php'; require_once 'assets/php/function.php'; include 'inc/config.php'; include 'inc/function.php'; $act = ''; if (!empty($_POST)) $act = isset($_POST["act"]) ? $_POST["act"] : ''; // Show Blast Details if ($act == 'showBlastDetails') { $blastId = isset($_POST['id']) ? $_POST['id'] : ''; $sql = "SELECT send_grid_key FROM user WHERE id=$gUserId"; $result = mysqli_query($db, $sql); $row = mysqli_fetch_assoc($result); $userSendGridKey = $row['send_grid_key']; $apiURL = "https://api.sendgrid.com/v3/marketing/stats/singlesends/$blastId?group_by=ab_variation&aggregated_by=total"; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $apiURL, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_HTTPHEADER => array( "authorization: Bearer $userSendGridKey" ), )); $response = curl_exec($curl); curl_close($curl); $arrStats = json_decode($response, true); $arrStatsClicks = $arrStats['results'][0]['stats']['clicks']; $arrStatsUniqueClicks = $arrStats['results'][0]['stats']['unique_clicks']; $arrStatsDelivered = $arrStats['results'][0]['stats']['delivered']; $arrStatsInvalidEmails = $arrStats['results'][0]['stats']['invalid_emails']; $arrStatsOpens = $arrStats['results'][0]['stats']['opens']; $arrStatsUniqueOpens = $arrStats['results'][0]['stats']['unique_opens']; $arrStatsUnsubscribes = $arrStats['results'][0]['stats']['unsubscribes']; ?> <div class="popup" style="max-width:600px"> <div class="widget"> <div class="card"> <div class="card-header bg-dark"> <h5 class="mb-0 text-light">Newsletter Details</h5> </div> </div> <div id="widget_B" style="padding:15px 25px; max-height:calc(100vh - 200px);overflow-y:auto;"> <table class="table table-striped"> <tr> <td>Delivered</td> <td><?= $arrStatsDelivered ?></td> </tr> <tr> <td>Unique Opens</td> <td><?= $arrStatsUniqueOpens ?></td> </tr> <tr> <td>Unique Clicks</td> <td><?= $arrStatsUniqueClicks ?></td> </tr> <tr> <td>Unsubscribes</td> <td><?= $arrStatsUnsubscribes ?></td> </tr> </table> </div> </div> </div> <? } // Show Article Details if ($act == 'showArticleDetails') { $postId = isset($_POST['id']) ? $_POST['id'] : ''; ?> <div class="popup" style="max-width:600px"> <div class="widget"> <div class="card"> <div class="card-header bg-dark"> <h5 class="mb-0 text-light">Article Details</h5> </div> </div> <div id="widget_B" style="padding:15px 25px; max-height:calc(100vh - 200px);overflow-y:auto;"> <? if ($gUserPlan == 0) { echo '<div class="alert alert-success" role="alert">This feature is only available in <b>Pro</b> plan! Go to My Account to upgrade.</div>'; } else { ?> <table class="table table-striped"> <thead> <tr> <th>Country</th> <th class="text-center">Total Views</th> <th>View Breakdown</th> </tr> </thead> <tbody> <? $sql = "SELECT count(article_id) AS totalVisits,visit_country FROM metrics WHERE article_id=$postId GROUP BY visit_country ORDER BY visit_country"; $result = mysqli_query($db, $sql); while ($row = mysqli_fetch_assoc($result)) { $visitCountry = $row['visit_country']; $visitCountryCount = $row['totalVisits']; ?> <tr> <td><?= $visitCountry ?></td> <td align="center"><?= $visitCountryCount ?></td> <td> <? $sql = "SELECT count(article_id) AS totalVisits,visit_city FROM metrics WHERE article_id=$postId AND visit_country='$visitCountry' GROUP BY visit_city ORDER BY visit_city"; $resultInner = mysqli_query($db, $sql); while ($rowInner = mysqli_fetch_assoc($resultInner)) { $visitCity = $rowInner['visit_city']; $visitCityCount = $rowInner['totalVisits']; if ($visitCity == '') $visitCity = 'Unknown'; ?> <?= $visitCity ?> - <?= $visitCityCount ?><br> <? } ?> </td> </tr> <? } ?> </tbody> </table> <? } ?> </div> </div> </div> <? } // Show Article Leads if ($act == 'showArticleLeads') { $postId = isset($_POST['id']) ? $_POST['id'] : ''; ?> <div class="popup" style="max-width:900px"> <div class="widget"> <div class="card"> <div class="card-header bg-dark"> <h5 class="mb-0 text-light">Article Lead Details</h5> </div> </div> <div id="widget_B" style="padding:15px 25px; max-height:calc(100vh - 200px);overflow-y:auto;"> <table class="table table-striped"> <thead> <tr> <th width="20">#</th> <th>Name</th> <th>Company</th> <th>Email</th> <th>Mobile</th> <th>Date</th> </tr> </thead> <tbody> <? $sql = "SELECT * FROM user_collection_lead WHERE article_id=$postId ORDER BY date_created DESC"; $result = mysqli_query($db, $sql); $i = 1; while ($row = mysqli_fetch_assoc($result)) { $leadName = $row['full_name']; $leadCompany = $row['company']; $leadEmail = $row['email']; $leadMobile = $row['mobile']; $leadDate = $row['date_created']; $leadDate = date('M d, Y', strtotime($leadDate)); ?> <tr> <td><?= $i ?>.</td> <td><?= $leadName ?></td> <td><?= $leadCompany ?></td> <td><?= $leadEmail ?></td> <td><?= $leadMobile ?></td> <td><?= $leadDate ?></td> </tr> <? $i += 1; } ?> </tbody> </table> </div> </div> </div> <? } ?> <? if ($act == '') { ?> <style> .card-container { display: flex; gap: 20px; flex-wrap: wrap; /* justify-content: space-between; */ } .card { background: #ffffff; padding: 20px; width: 250px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); text-align: center; transition: transform 0.3s; } .card:hover { transform: translateY(-5px); } .card h2 { font-size: 20px; color: #555; margin-bottom: 10px; } .card .count { font-size: 30px; font-weight: bold; color: #333; } .card-1 { border-left: 5px solid #3498db; } .card-2 { border-left: 5px solid #2ecc71; } .card-3 { border-left: 5px solid #e74c3c; } /* Mobile responsiveness */ @media (max-width: 768px) { .card-container { gap: 15px; /* Decrease gap between cards */ justify-content: center; /* Center the cards */ } .card { width: 100%; /* Make each card full width on smaller screens */ max-width: 320px; /* Set a maximum width for the cards */ margin-bottom: 15px; /* Add some spacing between cards */ } .card h2 { font-size: 18px; /* Slightly smaller font size for headings */ } .card .count { font-size: 25px; /* Slightly smaller font size for counts */ } } @media (max-width: 480px) { .card-container { gap: 10px; /* Decrease gap even further */ } .card h2 { font-size: 16px; /* Even smaller font size for headings */ } .card .count { font-size: 22px; /* Even smaller font size for counts */ } } </style> <ol class="breadcrumb my-3"> <li class="breadcrumb-item"> <h4 class="m-0">Analytics</h4> </li> </ol> <?php function checkQuery($db, $query) { $result = $db->query($query); if (!$result) { die("Query Failed: " . $db->error . " - SQL: " . $query); } return $result; } // Ensure database connection is working if (!$db) { die("Database connection failed: " . mysqli_connect_error()); } $articleQuery = "SELECT COUNT(*) AS total_articles FROM user_collection where user_id = $gUserId"; $articleResult = checkQuery($db, $articleQuery); $totalArticles = ($articleResult->num_rows > 0) ? $articleResult->fetch_assoc()['total_articles'] : 0; $gUserId = isset($gUserId) ? (int) $gUserId : 0; $feedQuery = "SELECT COUNT(*) AS total_feeds from user_feeds WHERE user_id = $gUserId"; $feedResult = checkQuery($db, $feedQuery); $totalFeeds = ($feedResult->num_rows > 0) ? $feedResult->fetch_assoc()['total_feeds'] : 0; // Fetch total visits count from 'metrics' $visitQuery = "SELECT COUNT(A.article_id) AS totalVisits FROM metrics A INNER JOIN user_collection B ON A.article_id = B.id AND B.user_id = 391;"; $visitResult = checkQuery($db, $visitQuery); $totalVisits = ($visitResult->num_rows > 0) ? $visitResult->fetch_assoc()['totalVisits'] : 0; ?> <div class="card-container"> <div class="card card-1"> <h2>Total Articles</h2> <div class="count"><?php echo $totalArticles; ?></div> </div> <div class="card card-2"> <h2>Total Feeds</h2> <div class="count"><?php echo $totalFeeds; ?></div> </div> <div class="card card-3"> <h2>Total Visits</h2> <div class="count"><?php echo number_format($totalVisits); ?></div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script src="https://cdn.jsdelivr.net/npm/chart.js@4.3.0"></script> <ol class="breadcrumb my-3"> <li class="breadcrumb-item"> <h4 class="m-0">Month-wise Analytics</h4> </li> </ol> <?php // Connect to the database (make sure your connection is established) // Query to fetch monthly visit counts $query = " SELECT DATE_FORMAT(A.date_visited, '%Y-%m') AS month, COUNT(A.article_id) AS totalVisits FROM metrics A INNER JOIN user_collection B ON A.article_id = B.id AND B.user_id = $gUserId WHERE A.date_visited >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR) GROUP BY DATE_FORMAT(A.date_visited, '%Y-%m') ORDER BY month ASC; "; // Execute the query $result = $db->query($query); // Initialize arrays to hold the data for the chart $labels = []; $data = []; // Process the query result while ($row = $result->fetch_assoc()) { $labels[] = date("M Y", strtotime($row['month'] . "-01")); // Format as "Jan 2024" $data[] = $row['totalVisits']; } ?> <!-- Chart.js HTML and Script --> <div style="width: 100%; margin: 0 auto;"> <canvas id="visitsChart"></canvas> </div> <script> // Pass data from PHP to JavaScript const labels = <?php echo json_encode($labels); ?>; const data = <?php echo json_encode($data); ?>; // Create the Chart.js line chart const ctx = document.getElementById('visitsChart').getContext('2d'); new Chart(ctx, { type: 'line', data: { labels: labels, // X-axis labels (Months) datasets: [{ label: 'Total Visits', data: data, // Y-axis data (Total Visits per Month) borderColor: 'rgb(54, 162, 235)', backgroundColor: 'rgba(54, 162, 235, 0.2)', borderWidth: 3, fill: true, tension: 0.3, pointRadius: 5, pointBackgroundColor: 'rgb(255, 99, 132)' }] }, options: { responsive: true, plugins: { title: { display: true, text: 'Monthly Website Visits', font: { size: 18 } }, legend: { display: true, position: 'top' } }, scales: { y: { beginAtZero: true, title: { display: true, text: 'Number of Visits (Higher is Better)', color: '#333', font: { size: 14, weight: 'bold' } }, ticks: { stepSize: 10 } }, x: { title: { display: true, text: 'Month (Track Your Growth)', color: '#333', font: { size: 14, weight: 'bold' } } } } } }); </script> <br> <br> <style> /* Ensure the tabs are scrollable on smaller screens */ .nav-tabs { display: flex; flex-wrap: nowrap; /* Prevent wrapping of tabs */ overflow-x: auto; /* Allow horizontal scrolling */ -webkit-overflow-scrolling: touch; /* Enable smooth scrolling on iOS */ } .nav-tabs .nav-item { flex-shrink: 0; /* Prevent tabs from shrinking */ } /* Optional: Add some padding and make it look nicer */ .nav-tabs { padding: 10px 0; } /* Adjust tab content for mobile responsiveness */ @media (max-width: 768px) { .nav-tabs { margin-bottom: 10px; /* Add margin below the tabs */ } .nav-tabs .nav-link { padding: 10px 15px; /* Adjust padding for better appearance */ } } </style> <div class="row mb-4"> <div class="col"> <ul class="nav nav-tabs mb-4"> <li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#articles" role="tab">Top Visited Articles</a></li> <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#lead" role="tab">Article Leads</a></li> <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#newsletter" role="tab">Sent Newsletters</a></li> </ul> <div class="tab-content my-3"> <div class="tab-pane fade show active" id="articles" role="tabpanel"> <? $sql = "SELECT B.id,B.title,count(A.article_id) AS totalVisits FROM metrics A INNER JOIN user_collection B ON (A.article_id=B.id AND B.user_id=$gUserId) GROUP BY B.url,B.id ORDER BY totalVisits DESC"; $result = mysqli_query($db, $sql); $numRows = mysqli_num_rows($result); if ($numRows == 0) { echo '<div class="px-3">No articles to show!</div>'; } else { ?> <table class="table table-striped"> <thead> <tr> <th width="20">#</th> <th>Title</th> <th>Views</th> <th></th> </tr> </thead> <tbody> <? $i = 1; while ($row = mysqli_fetch_assoc($result)) { $topArticleId = $row['id']; $topArticleTitle = $row['title']; $topArticleVisit = $row['totalVisits']; ?> <tr> <td><?= $i ?>.</td> <td><a href="https://www.knoblyreader.com/view/<?= $topArticleId ?>/<?= createArticleURL($topArticleTitle) ?>" target="_blank"><?= $topArticleTitle ?></a></td> <td><?= $topArticleVisit ?></td> <td align="right"><a href="#" title="View Details"><i data-id="<?= $topArticleId ?>" class="viewRowA far fa-chart-bar fa-lg text-muted"></i></a></td> </tr> <? $i += 1; } ?> </tbody> </table> <? } ?> </div> <div class="tab-pane fade" id="lead" role="tabpanel"> <? if ($gUserPlan == 0) { echo '<div class="alert alert-success" role="alert">This feature is only available in <b>Pro</b> plan! Go to My Account to upgrade.</div>'; } else { $sql = "SELECT B.id,B.title,count(A.article_id) AS totalLeads FROM user_collection_lead A INNER JOIN user_collection B ON (A.article_id=B.id AND B.user_id=$gUserId) GROUP BY B.url,B.id ORDER BY totalLeads DESC LIMIT 25"; $result = mysqli_query($db, $sql); $numRows = mysqli_num_rows($result); if ($numRows == 0) { echo '<div class="px-3">No article leads to show!</div>'; } else { ?> <table class="table table-striped"> <thead> <tr> <th width="20">#</th> <th>Title</th> <th>Leads</th> <th></th> </tr> </thead> <tbody> <? $i = 1; while ($row = mysqli_fetch_assoc($result)) { $topArticleId = $row['id']; $topArticleTitle = $row['title']; $topArticleLead = $row['totalLeads']; ?> <tr> <td><?= $i ?>.</td> <td><a href="https://www.knoblycream.com/view/<?= $topArticleId ?>/<?= createArticleURL($topArticleTitle) ?>" target="_blank"><?= $topArticleTitle ?></a></td> <td><?= $topArticleLead ?></td> <td align="right"><a href="#" title="View Details"><i data-id="<?= $topArticleId ?>" class="viewRowL far fa-chart-bar fa-lg text-muted"></i></a></td> </tr> <? $i += 1; } ?> </tbody> </table> <? } } ?> </div> <div class="tab-pane fade" id="newsletter" role="tabpanel"> <? if ($gUserPlan == 0) { echo '<div class="alert alert-success" role="alert">This feature is only available in <b>Pro</b> plan! Go to My Account to upgrade.</div>'; } else { $sql = "SELECT A.newsletter_id,A.blast_provider,A.blast_subject,A.blast_id,A.date_created FROM user_blast A INNER JOIN user_newsletter B ON A.newsletter_id=B.id AND B.user_id=$gUserId"; $result = mysqli_query($db, $sql); $numRows = mysqli_num_rows($result); if ($numRows == 0) { echo '<div class="px-3">No newsletters sent!</div>'; } else { ?> <table class="table table-striped"> <thead> <tr> <th width="20">#</th> <th>Provider</th> <th>Subject</th> <th>Date Sent</th> <th></th> </tr> </thead> <tbody> <? $i = 1; while ($row = mysqli_fetch_assoc($result)) { $newsletterId = $row['newsletter_id']; $blastId = $row['blast_id']; $blastProvider = $row['blast_provider']; $blastSubject = $row['blast_subject']; $blastDate = $row['date_created']; $blastDate = date('M d, Y', strtotime($blastDate)); ?> <tr> <td><?= $i ?>.</td> <td><?= $blastProvider ?></td> <td><a href="newsletter.php?id=<?= $newsletterId ?>" target="_blank"><?= $blastSubject ?></a></td> <td><?= $blastDate ?></td> <td align="right"><a href="#" title="View Details"><i data-id="<?= $blastId ?>" class="viewRowN far fa-chart-bar fa-lg text-muted"></i></a></td> </tr> <? $i += 1; } ?> </tbody> </table> <? } } ?> </div> </div> </div> </div> <script type="text/javascript"> $(function() { $('.viewRowA').magnificPopup({ type: 'ajax', closeBtnInside: true, ajax: { settings: { method: 'POST', url: 'process/get.section.analytics.php' } }, callbacks: { elementParse: function(item) { var data = $(item.el[0]).closest('.data'); postData = { act: 'showArticleDetails', id: $(item.el[0]).data('id') } this.st.ajax.settings.data = postData; } } }); $('.viewRowL').magnificPopup({ type: 'ajax', closeBtnInside: true, ajax: { settings: { method: 'POST', url: 'process/get.section.analytics.php' } }, callbacks: { elementParse: function(item) { var data = $(item.el[0]).closest('.data'); postData = { act: 'showArticleLeads', id: $(item.el[0]).data('id') } this.st.ajax.settings.data = postData; } } }); $('.viewRowN').magnificPopup({ type: 'ajax', closeBtnInside: true, ajax: { settings: { method: 'POST', url: 'process/get.section.analytics.php' } }, callbacks: { elementParse: function(item) { var data = $(item.el[0]).closest('.data'); postData = { act: 'showBlastDetails', id: $(item.el[0]).data('id') } this.st.ajax.settings.data = postData; } } }); }); </script> <? } ?>