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: magazine.php
Close
<?php // Include database connection include 'assets/php/db_connect.php'; function fetch_all_publishers($conn) { // Fetch publishers from the database $sql = "SELECT DISTINCT rss_publisher FROM rss_feeds_url"; // Your query $result = $conn->query($sql); if ($result && $result->num_rows > 0) { while ($row = $result->fetch_assoc()) { if (!empty($row['rss_publisher'])) { // Generate a sanitized ID for the checkbox $publisherId = htmlspecialchars(preg_replace('/[^a-zA-Z0-9_]/', '', $row['rss_publisher'])); $publisherName = htmlspecialchars($row['rss_publisher']); ?> <input type="checkbox" id="publisher<?= $publisherId ?>" value="<?= $publisherName ?>"> <label for="publisher<?= $publisherId ?>"><?= $publisherName ?></label><br> <?php } } } else { echo "No publishers found."; } } function fetch_all_topics($conn) { $html = ''; $sql = "SELECT id, category FROM reader_category"; $result = $conn->query($sql); if ($result && $result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $topic = htmlspecialchars($row['category']); $topicId = htmlspecialchars($row['id']); $html .= "<input type='checkbox' id='topic$topicId' value='$topicId' data-topic='$topic'> "; $html .= "<label for='topic$topicId'>$topic</label><br>"; } } else { $html .= "No topics found."; } return $html; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Magazine - Choose Publishers and Topics</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="/assets/css/styles.css"> <style> body { display: flex; flex-direction: column; min-height: 100vh; background-color: #141414; color: #fff; font-family: Arial, sans-serif; } .header { text-align: center; margin: 30px 0; } .header h1 { font-size: 48px; font-weight: bold; } .dropdown { position: relative; } .dropdown-menu { display: none; position: absolute; z-index: 1000; background: #333; border: 1px solid #444; width: 100%; max-height: 200px; overflow-y: auto; border-radius: 5px; } .dropdown.open .dropdown-menu { display: block; } .dropdown-toggle { background-color: #fcfcfc; color: #141414; border: none; border-radius: 5px; padding: 10px; width: 100%; } .dropdown-toggle:hover { background-color: #fcfcfc; color: #141414; } .footer { text-align: center; padding: 20px; background-color: #222; color: #fff; margin-top: auto; /* Push the footer to the bottom */ } .btn-primary { color: #007bff; background-color: #1c1c1c !important; border-color: #1c1c1c; } .btn-primary:hover { background-color: #1c1c1c; border: 1px solid #007bff; } .container-fluid button { display: flex; position: relative; bottom: -32px; } input[type="checkbox"] { margin-right: 10px; cursor: pointer; } h3 { padding: 10px 15px; } .hidden { display: none; } .dropdowns { background-color: #fcfcfc; padding: 10px; } #magazineDisplay { margin-top: 20px; background-color: #333; padding: 20px; border-radius: 5px; } #magazineContent h3 { color: #e50914; } /* Category Section */ .category { margin-bottom: 2rem; } .category-title { margin-bottom: 2rem; font-size: 1.75rem; font-weight: 700; color: #fff; text-align: center; } /* Scrollable Row */ .scroll-row { display: flex; overflow-x: auto; padding-bottom: 1rem; scroll-behavior: smooth; } .scroll-row::-webkit-scrollbar { height: 8px; } .scroll-row::-webkit-scrollbar-thumb { background-color: #555; border-radius: 4px; } .scroll-row::-webkit-scrollbar-track { background-color: #222; } .scroll-row { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 0px; padding-bottom: 10px; } .item-card { flex: 0 0 auto; max-width: 200px; min-width: 200px; margin-right: 1rem; background-color: #1c1c1c; border: none; border-radius: 8px; transition: transform 0.3s, box-shadow 0.3s; cursor: pointer; } /* Card Styles */ .item-card:last-child { margin-right: 0; } .item-card:hover { /* transform: scale(1.05); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.6); */ z-index: 2; } .item-card img { border-top-left-radius: 8px; border-top-right-radius: 8px; height: 120px; object-fit: cover; } .item-card .card-body { padding: 0.5rem 1rem; } .item-card .card-title { font-size: 1rem; margin-bottom: 0.5rem; color: #fff; text-align: center; } .item-card .btn { padding: 0.25rem 0.5rem; font-size: 0.75rem; border-radius: 4px; display: block; margin: 0 auto; width: 60%; } /* Action Buttons Section */ .actions-section { margin-top: 2rem; margin-bottom: 2rem; } .action-card { background-color: #333; border: none; border-radius: 8px; transition: background-color 0.3s, transform 0.3s; cursor: pointer; } .action-card:hover { background-color: #444; transform: translateY(-5px); } .action-card .card-body { text-align: center; padding: 2rem 1rem; } .action-card .card-title { margin-bottom: 1rem; font-size: 1.25rem; font-weight: 700; color: #fff; } .action-card .btn { margin-top: 1rem; padding: 0.5rem 1rem; font-size: 1rem; border-radius: 4px; } .icon { color: white !important; /* White color for the icons */ /* margin-right: 10px; */ border: none; } .navbar-toggler:focus { border-color: black !important; border: none !important; outline: none; } .tooltip { position: relative; display: inline-block; } .tooltiptext { visibility: hidden; width: 120px; background-color: black; color: #fff; text-align: center; border-radius: 5px; padding: 5px; position: absolute; z-index: 1; bottom: 125%; /* Position above the icon */ left: 50%; margin-left: -60px; /* Center the tooltip */ opacity: 0; /* Hide tooltip initially */ transition: opacity 0.3s; } .tooltip:hover .tooltiptext { visibility: visible; opacity: 1; /* Show tooltip on hover */ } .action-card { height: 220px; /* Set a fixed height */ display: flex; /* Use flexbox for vertical centering */ flex-direction: column; /* Align children vertically */ justify-content: center; /* Center content vertically */ text-align: center; /* Center text horizontally */ } .dropdown-menu { position: absolute; top: 100%; z-index: 1000; display: none; float: left; min-width: 10rem; padding: .5rem 0; margin: .125rem 0 0; font-size: 1rem; color: #212529; text-align: left; list-style: none; background-color: #fff; background-clip: padding-box; border: 1px solid rgba(0, 0, 0, .15); border-radius: .25rem; } .item-card { position: relative; /* Allow absolute positioning for the checkbox */ } .checkbox-container { position: absolute; top: 10px; /* Adjust as needed */ right: 10px; /* Adjust as needed */ } .article-checkbox { width: 20px; /* Make the checkbox larger */ height: 20px; /* Make the checkbox larger */ cursor: pointer; /* Change cursor to pointer for better UX */ } .item-card input[type="checkbox"] { margin-right: 10px; cursor: pointer; position: absolute; } #addMagazineForm { width: 100%; display: flex; justify-items: left; gap: 10px; } #addMagazineForm .form-group { width: 100%; max-width: 250px; display: flex; flex-direction: column; justify-items: left; gap: 10px; } #magazineTitle::placeholder { color: #fcfcfc; font-size: 14px; font-weight: 200; /* Change placeholder text color */ } .modal-title{ max-width: 88%; } /* Responsive Adjustments */ @media (max-width: 992px) { .item-card { min-width: 180px; } .category-title { font-size: 1.5rem; } } @media (max-width: 768px) { .item-card { min-width: 160px; } .category-title { font-size: 1.25rem; } .action-card .card-title { font-size: 1.1rem; } .action-card .btn { font-size: 0.95rem; } } @media (max-width: 576px) { .navbar-brand { font-size: 1.25rem; } .nav-link { margin-left: 0.5rem; font-size: 0.9rem; padding: .5rem 0rem; } .item-card { max-width: 140px; } .category-title { font-size: 1rem; } .action-card .card-title { font-size: 1rem; } .action-card .btn { font-size: 0.9rem; } } </style> </head> <body> <!-- Navbar --> <nav class="navbar navbar-expand-lg"> <div class="container d-flex justify-content-between"> <a class="navbar-brand" href="#"> <img src="assets/img/logo.black.png" height="60px" alt="Logo"> </a> </div> </nav> <!-- Header --> <div class="header"> <h1>Create Your Own Magazine</h1> <p>Select by Publisher and Topics</p> </div> <div class="container flex-grow-1"> <div class="row choice-section"> <div class="col-md-6"> <h3>Choose by Publisher</h3> <div class="dropdown" id="publisherDropdown"> <button class="btn dropdown-toggle" type="button" id="publisherDropdownButton" aria-expanded="false"> Select Publishers </button> <div class="dropdown-menu" aria-labelledby="publisherDropdownButton"> <div class="dropdowns"> <?php fetch_all_publishers($conn) ?> </div> </div> </div> </div> <div class="col-md-6"> <h3>Choose by Topic</h3> <div class="dropdown" id="topicDropdown"> <button class="btn dropdown-toggle" type="button" id="topicDropdownButton" aria-expanded="false"> Select Topics </button> <div class="dropdown-menu" aria-labelledby="topicDropdownButton"> <div class="dropdowns"> <?= fetch_all_topics($conn) ?> </div> </div> </div> </div> </div> <button class="btn btn-primary mt-5" id="generateMagazine">Submit</button> <div class="container-fluid" style="display:none;"> <!-- Featured Channels Category --> <div class="category"> <h2 class="category-title">Your Magazine</h2> <div class="scroll-row"> <!-- Channel Cards with Logos --> <div class="card item-card"> <img src="" class="card-img-top" alt=""> <div class="card-body"> <h5 class="card-title"></h5> <a href="#" class="btn btn-primary">Read</a> </div> </div> </div> </div> <!-- Add Magazine Section --> <div class="add-magazine mb-4"> <h4 class="add-magazine-title">Add Your Magazine</h4> <form id="addMagazineForm"> <div class="form-group"> <label style="font-size: medium;" for="magazineTitle">Magazine Title:</label> <input style="background-color:#222; color:#fcfcfc!important; border:#141414" type="text" id="magazineTitle" class="form-control" placeholder="Enter your magazine title" required> </div> <div class="form-group"> <label for="coverPhoto">Upload Cover Photo:</label> <input style="background-color:#222; color:#fcfcfc!important; border:#141414" type="file" id="coverPhoto" class="form-control" accept="image/*"> </div> <div class="container-fluid"> <button id="collectSelected" class="btn btn-primary">Process</button> </div> </form> </div> </div> <div id="magazineDisplay" class="hidden"> <h2 class="text-center">Fetched Magazine</h2> <div id="magazineContent" class="text-center"></div> </div> </div> <!-- Footer --> <div class="footer"> <p>© 2024 MyMagazine. All rights reserved.</p> </div> <!-- Bootstrap JS --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> function toggleDefaultCovers() { const coverPhotoInput = document.getElementById('coverPhoto'); const defaultCoverOptions = document.querySelector('.default-cover-options'); // Show default cover options if no file is selected if (!coverPhotoInput.files.length) { defaultCoverOptions.style.display = 'block'; } else { defaultCoverOptions.style.display = 'none'; } } function selectDefaultCover(cover) { const coverPhotoInput = document.getElementById('coverPhoto'); coverPhotoInput.value = cover; // Set the selected cover as value // Optionally, update the UI to show the selected cover } </script> <script> let selectedTopics = []; // Moved to higher scope let selectedTopicsVal = []; let selectedPublishers = []; // Moved to higher scope function fetchedArticles(selectedPublishers, selectedTopics) { if (selectedPublishers.length === 0 && selectedTopics.length === 0) { alert('Please select at least one publisher or topic.'); return; // Exit the function } // Implement functionality to fetch articles based on selected publishers and topics console.log("Fetching articles for:", selectedPublishers, selectedTopics); // Make AJAX request $.ajax({ type: 'POST', url: 'fetch_articles.php', data: { publishers: JSON.stringify(selectedPublishers), topics: JSON.stringify(selectedTopics) }, success: function(response) { let articles = Array.isArray(response) ? response : JSON.parse(response); // Attempt to parse the response if it's not already an array try { articles = Array.isArray(response) ? response : JSON.parse(response); } catch (e) { console.error('Error parsing response:', e); alert('Failed to parse the articles. Please try again later.'); return; } // Check if articles are fetched if (articles.length > 0) { let magazineContent = articles.map(feed => ` <div class="card item-card"> <input type="checkbox" class="article-checkbox" data-url="${feed.url}"> <img src="${feed.image}" class="card-img-top" alt="${feed.title}"> <div class="card-body"> <h5 class="card-title">${feed.title}</h5> <a href="${feed.url}" class="btn btn-primary" target="_blank">Read</a> </div> </div> `).join(''); // Insert the constructed HTML into the scroll-row $('.scroll-row').html(magazineContent); // Show the magazine display container $('.container-fluid').show(); } else { // If no articles are found, hide the container and show an alert $('.container-fluid').hide(); alert('No articles found for the selected publishers and topics.'); } }, error: function(xhr, status, error) { // Enhanced error handling with more details console.error('Error fetching articles:', status, error); alert('An error occurred while fetching the feeds. Please try again later.'); } }); } $(document).ready(function() { // Toggle dropdown visibility $('.dropdown-toggle').on('click', function() { $(this).parent().toggleClass('open'); }); // Close dropdown when clicking outside $(document).on('click', function(event) { if (!$(event.target).closest('.dropdown').length) { $('.dropdown').removeClass('open'); } }); // When a checkbox is changed in topic dropdown $('#topicDropdown input[type="checkbox"]').change(function() { selectedTopics = []; // Clear previous selections selectedTopicsVal = []; // Get all checked checkboxes $('#topicDropdown input[type="checkbox"]:checked').each(function() { selectedTopics.push($(this).data('topic')); selectedTopicsVal.push($(this).val()); }); // Update the dropdown button text $('#topicDropdownButton').text(selectedTopics.length > 0 ? selectedTopics.join(', ') : 'Select Topics'); }); // When a checkbox is changed in publisher dropdown $('#publisherDropdown input[type="checkbox"]').change(function() { selectedPublishers = []; // Clear previous selections // Get all checked checkboxes $('#publisherDropdown input[type="checkbox"]:checked').each(function() { selectedPublishers.push($(this).val()); }); // Update the dropdown button text $('#publisherDropdownButton').text(selectedPublishers.length > 0 ? selectedPublishers.join(', ') : 'Select Publishers'); }); // Update button click event to use the fetchedArticles function $('#generateMagazine').on('click', function() { console.log("The function is in action"); fetchedArticles(selectedPublishers, selectedTopicsVal); }); $('#collectSelected').on('click', function() { const selectedArticles = []; $('.article-checkbox:checked').each(function() { selectedArticles.push($(this).data('url')); }); console.log('Selected articles:', selectedArticles); // AJAX request to store selected articles $.ajax({ url: 'store_articles.php', // Change to your server script path method: 'POST', data: { articles: selectedArticles }, success: function(response) { console.log('Articles stored successfully:', response); // Optionally, handle successful response (e.g., show a message) }, error: function(jqXHR, textStatus, errorThrown) { console.error('Error storing articles:', textStatus, errorThrown); // Optionally, handle error (e.g., show an error message) } }); }); }); </script> </body> </html>