X7ROOT File Manager
Current Path:
/home/u126090504/domains/saiadarshainternationalschool.org.in/public_html
home
/
u126090504
/
domains
/
saiadarshainternationalschool.org.in
/
public_html
/
π
..
π
.htaccess
(0 B)
π
Antiraging-Cell.php
(2.73 KB)
π
SVM-INT (1) (1).zip
(117.51 MB)
π
about-us.php
(5.86 KB)
π
academic-calendar.php
(2.73 KB)
π
achievements.php
(9.56 KB)
π
achievers.php
(15.19 KB)
π
admin
π
admission-process.php
(6.85 KB)
π
admission.php
(12.93 KB)
π
admission_submit.php
(3.38 KB)
π
album.php
(890 B)
π
assessment-policy.php
(6.8 KB)
π
cbse-curriculum-summary.php
(5.99 KB)
π
computer-courses.php
(22.83 KB)
π
config.php
(1.27 KB)
π
contact-us.php
(14.63 KB)
π
contactdb.php
(796 B)
π
courses.php
(10.44 KB)
π
css
π
director's-message.php
(6.54 KB)
π
downloads.php
(2.9 KB)
π
error.log
(14.6 KB)
π
facilities.php
(6.04 KB)
π
faculty.php
(10.27 KB)
π
fee-structure.php
(7.97 KB)
π
fonts
π
footer.php
(23.95 KB)
π
franchise.php
(2.09 KB)
π
gallery.php
(3.05 KB)
π
google929b505e9f42f894.html
(53 B)
π
grievance-form.php
(16.52 KB)
π
header.php
(19.69 KB)
π
homework.php
(9.64 KB)
π
images
π
index.php
(39.38 KB)
π
infrastructure-details.php
(5.39 KB)
π
js
π
lib
π
managing-committee.php
(3.34 KB)
π
media-corner.php
(2.48 KB)
π
non-academic-achievers.php
(14.65 KB)
π
payment.php
(21.85 KB)
π
payment_submit.php
(15.1 KB)
π
payment_verify.php
(2.31 KB)
π
placement.php
(8.33 KB)
π
principal's-message.php
(6.65 KB)
π
public-disclosure.php
(3.38 KB)
π
qrcodes
π
revolution
π
sai
π
scope.php
(14.14 KB)
π
search_videos.php
(1.76 KB)
π
sitemap.xml
(4.69 KB)
π
subjects-offered.php
(6 KB)
π
submit-grievance.php
(3.88 KB)
π
svm
π
thank-you.php
(1.28 KB)
π
u126090504_svmint.sql
(40.87 KB)
π
uploads
π
videos.php
(6.87 KB)
Editing: index.php
<?php require_once 'config.php'; include 'header.php'; ?> <!-- ====== Keep menu above ticker ====== --> <style> .notice-bar { position: relative; z-index: 100; } header, .site-header, .navbar, .main-nav, .main-menu, .menu, .ttm-header-style-classic, .ttm-header-style-classic .ttm-stickable-header, .ttm-header-style-classic .site-navigation, .ttm-header-style-classic .ttm-menu-toggle, .ttm-header-style-classic .ttm-menu-toggle .ttm-menu, .ttm-header-style-classic .ttm-stickable-header-w { position: relative; z-index: 2500; } .navbar ul li ul, .main-menu ul li ul, .ttm-header-style-classic ul li ul, .menu > li > ul, .dropdown-menu { position: absolute; z-index: 3000 !important; } .ttm-header-style-classic, .ttm-stickable-header, .site-header { overflow: visible; } .slick-slider, .slick-list, .slick-track, .slick-arrow, .mega-menu { z-index: 2001; } </style> <?php // ===== Notice Ticker (Frontend) ===== date_default_timezone_set('Asia/Kolkata'); $__today = date('Y-m-d'); $__cutoff_ts = strtotime('-15 days'); // PHP compare (seconds) $__cutoff_dt = date('Y-m-d H:i:s', $__cutoff_ts); // for SQL created_at // Fetch: ACTIVE window OR created within last 15 days $__sql = " SELECT id, title, url, file_path, starts_on, ends_on, created_at FROM notices WHERE is_active = 1 AND ( ( (starts_on IS NULL OR starts_on='' OR starts_on='0000-00-00' OR starts_on <= ?) AND (ends_on IS NULL OR ends_on='' OR ends_on='0000-00-00' OR ends_on >= ?) ) OR (created_at >= ?) ) LIMIT 200 "; $__rows = []; if (isset($conn) && $stmt = $conn->prepare($__sql)) { $stmt->bind_param('sss', $__today, $__today, $__cutoff_dt); $stmt->execute(); $res = $stmt->get_result(); $__rows = $res ? $res->fetch_all(MYSQLI_ASSOC) : []; $stmt->close(); } // ---- Build ordered list in PHP: NEW first, then OLD (both newestβoldest) function _p_ts($row) { // prefer starts_on if valid; else created_at if (!empty($row['starts_on']) && $row['starts_on'] !== '0000-00-00') { $ts = strtotime($row['starts_on'].' 00:00:00'); if ($ts !== false) return $ts; } if (!empty($row['created_at'])) { $ts = strtotime($row['created_at']); if ($ts !== false) return $ts; } return 0; } foreach ($__rows as &$r) { $r['_pub_ts'] = _p_ts($r); $r['_is_new'] = ($r['_pub_ts'] >= $__cutoff_ts); } unset($r); // sort: is_new desc, pub_ts desc, id desc usort($__rows, function($a, $b){ if ($a['_is_new'] !== $b['_is_new']) return $a['_is_new'] ? -1 : 1; if ($a['_pub_ts'] !== $b['_pub_ts']) return ($a['_pub_ts'] > $b['_pub_ts']) ? -1 : 1; return ($a['id'] == $b['id']) ? 0 : (($a['id'] > $b['id']) ? -1 : 1); }); ?> <?php if (!empty($__rows)): ?> <style> /* ===== Notice Ticker Styles ===== */ .notice-bar { position: relative; z-index: 100; width: 100%; background: #033870; color: #fff; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; } .notice-bar .container { display: flex; align-items: center; gap: 12px; padding: 8px 16px; overflow: hidden; } .notice-bar .label { flex: 0 0 auto; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; font-size: 12px; background: #ea0000; color: #fff; padding: 3px 8px; border-radius: 999px; } .notice-bar .ticker-wrap { position: relative; flex: 1 1 auto; overflow: hidden; cursor: pointer; } .notice-bar .ticker { display: flex; white-space: nowrap; will-change: transform; transition: transform 0.2s linear; } .notice-bar .ticker a { color: #FFFFFF; text-decoration: underline; font-weight:bold; } .notice-bar .item { display: inline-block; padding: 0 24px; font-size: 14px; line-height: 1.6; } .notice-bar .dot { display: inline-block; width: 6px; height: 6px; background: #ea0000; border-radius: 50%; margin: 0 8px; vertical-align: middle; } .blink-new { background:#ea0000; color:#fff; border-radius:6px; padding:1px 6px; font-size:11px; font-weight:700; animation:newBlink 1s steps(2,start) infinite; margin-left:8px; } @keyframes newBlink { 50% { opacity: .15; } } </style> <div class="notice-bar"> <div class="container"> <span class="label">LATEST UPDATES</span> <div class="ticker-wrap" id="noticeTickerWrap" title="Click to Pause/Resume"> <div class="ticker" id="noticeTicker"> <?php foreach ($__rows as $__n): $__t = htmlspecialchars($__n['title'] ?? '', ENT_QUOTES, 'UTF-8'); $__u = trim($__n['url'] ?? ''); $__f = trim($__n['file_path'] ?? ''); $__href = $__f ? $__f : $__u; // file link first $__isNew = !empty($__n['_is_new']); ?> <span class="item"> <?php if ($__href): ?> <a href="<?php echo htmlspecialchars($__href, ENT_QUOTES, 'UTF-8'); ?>"><?php echo $__t; ?></a> <?php else: ?> <?php echo $__t; ?> <?php endif; ?> <?php if ($__isNew): ?><span class="blink-new">NEW</span><?php endif; ?> <span class="dot" aria-hidden="true"></span> </span> <?php endforeach; ?> </div> </div> </div> </div> <script> // ===== Smooth infinite ticker (with click pause/resume) ===== (function(){ var wrap = document.getElementById('noticeTickerWrap'); var track = document.getElementById('noticeTicker'); if(!wrap || !track) return; // Duplicate content for seamless loop (order preserved: NEW block first, then OLD block) track.innerHTML = track.innerHTML + track.innerHTML; var speed = 60; // px/sec var x = 0, paused = false, contentWidth = track.scrollWidth / 2; function animate(){ if (!paused) { x -= (speed / 60); if (-x >= contentWidth) x = 0; track.style.transform = 'translateX(' + x + 'px)'; } requestAnimationFrame(animate); } if (document.readyState === 'complete' || document.readyState === 'interactive') animate(); else document.addEventListener('DOMContentLoaded', animate); wrap.addEventListener('mouseenter', function(){ paused = true; }); wrap.addEventListener('mouseleave', function(){ paused = false; }); wrap.addEventListener('click', function(){ paused = !paused; }); })(); </script> <?php endif; ?> <?php require_once 'config.php'; // β ΰ€ΰ€ ΰ€ΰ₯ date $today = date("Y-m-d"); // β Active popup fetch ΰ€ΰ€°ΰ₯ (date valid ΰ€Ήΰ₯ΰ€¨ΰ€Ύ ΰ€ΰ€Ύΰ€Ήΰ€Ώΰ€) $stmt = $conn->prepare("SELECT * FROM popup_banner WHERE status=1 AND (start_date IS NULL OR start_date <= ?) AND (end_date IS NULL OR end_date >= ?) ORDER BY id DESC LIMIT 1"); $stmt->bind_param("ss", $today, $today); $stmt->execute(); $res = $stmt->get_result(); if ($res->num_rows > 0) { $popup = $res->fetch_assoc(); $popupImage = "uploads/popup/" . htmlspecialchars($popup['image']); $popupLink = htmlspecialchars($popup['link']); ?> <!-- β Popup HTML --> <div id="popup-overlay"> <div id="popup-box"> <a href="<?php echo $popupLink ?: '#'; ?>" target="_blank" rel="noopener"> <img src="<?php echo $popupImage; ?>" alt="Popup"> </a> <span id="popup-close" aria-label="Close popup">×</span> </div> </div> <!-- β CSS --> <style> #popup-overlay { position: fixed; top:0; left:0; width:100%; height:100%; background: rgba(0,0,0,0.6); display:flex; align-items:center; justify-content:center; z-index: 5000; /* above everything */ visibility:hidden; opacity:0; transition:opacity 0.3s ease-in-out; } #popup-box { position:relative; background:#fff; padding:10px; border-radius:12px; box-shadow:0 5px 20px rgba(0,0,0,0.3); animation:zoomIn 0.4s ease; max-width:500px; width:90%; } #popup-box img { width:100%; border-radius:10px; } #popup-close { position:absolute; top:-10px; right:-10px; background:#f00; color:#fff; font-size:22px; font-weight:bold; border-radius:50%; padding:0 8px; cursor:pointer; } @keyframes zoomIn { from {transform:scale(0.8);} to {transform:scale(1);} } </style> <!-- β JS --> <script> window.addEventListener("load", function(){ setTimeout(function(){ var ov = document.getElementById("popup-overlay"); if (ov) { ov.style.visibility = "visible"; ov.style.opacity = "1"; } }, 2000); }); document.addEventListener("click", function(e){ if (e.target && (e.target.id === "popup-close" || e.target.id === "popup-overlay")) { var ov = document.getElementById("popup-overlay"); if (ov) { ov.style.visibility = "hidden"; ov.style.opacity = "0"; } } }); </script> <?php } ?> <!-- Banner Slider --> <div class="banner-slider slick_slider slick-arrows-style1" data-slick='{"slidesToShow": 1, "slidesToScroll": 1, "arrows":true, "autoplay":true, "responsive": [{"breakpoint":870,"settings":{"slidesToShow": 1}}, {"breakpoint":525,"settings":{"slidesToShow": 1}}]}'> <?php $stmt = $conn->prepare("SELECT imgfile FROM bannertab ORDER BY position ASC, id DESC"); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $img = htmlspecialchars($row['imgfile']); echo '<div class="banner-slide"> <img class="img-fluid" src="uploads/banners/'.$img.'" alt="SVM International School"/> </div>'; } } else { echo "<p>No Banners Found</p>"; } ?> </div> <!-- Site Main --> <div class="site-main"> <!--introduction-section--> <section class="ttm-row introduction-section clearfix" style="margin-top:-10%;"> <div class="container"> <div class="row"> <div class="col-lg-8 col-xs-12"> <!-- section title --> <div class="section-title"> <div class="title-header"> <h2 class="title" style="font-size:30px; color:#ea0000;">Welcome to Sai Adarsha International School (CBSE)</h2> </div> <div class="heading-seperator"><span></span></div> </div><!-- section title end --> <p style="text-align:justify; font-size:18px; color:#1a1a1a;"> <b>Sai Adarsha International School is a leading CBSE school in Baripada, Mayurbhanj,</b> dedicated to nurturing young minds through quality education, strong values, and holistic development. We provide CBSE curriculum education from Nursery to Class VIII, focusing on academic excellence along with character building.<br/><br/> At Sai Adarsha International School, we follow a child-centric and activity-based learning approach. Our experienced teachers use modern teaching methods, smart classrooms, and practical learning techniques to make education engaging and effective. <br/> We believe that every child is unique, and we help students discover their strengths while nurturing their talents in academics, sports, arts, and co-curricular activities. </p> </div> <!-- ====== Bulletin Styles (put once) ====== --> <style> :root{ --ink:#0a1340; /* deep navy */ --link:#0b3bff; /* brand blue */ --muted:#8b93a7; /* subtle grey */ --card:#ffffff; /* card bg */ --ring:rgba(15,23,42,.08); } .bulletin-card{ background: var(--card); border: 1px solid var(--ring); border-radius: 16px; box-shadow: 0 10px 30px rgba(15,23,42,.08); padding: 20px 22px; } .bulletin-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; } .bulletin-title{ font-size:24px; font-weight:800; color:var(--ink); letter-spacing:.2px; white-space:nowrap; overflow:hidden; } /* typing caret only (text set by JS) */ .typing-caret{ border-right:2px solid var(--ink); padding-right:2px; animation: caretBlink .8s steps(1,end) infinite; } @keyframes caretBlink{ 50%{ border-color: transparent; } } .notice-shell{ border:1px solid var(--ring); border-radius:12px; background:#fafbff; padding:12px 14px; height:300px; overflow:hidden; } marquee{ height:100%; } .notice-item{ margin:0 0 10px 0; padding:0 0 10px 0; border-bottom:1px dashed rgba(15,23,42,.06); } .notice-item:last-child{ border-bottom:0; } .notice-item h5{ margin:0; font-size:15px; font-weight:600; color:#2a2f45; line-height:1.45; } .notice-item h5 a{ color:var(--link); text-decoration:none; } .notice-item h5 a:hover{ text-decoration:underline; } .notice-date{ color:var(--muted); font-weight:700; margin-right:6px; } .badge-new{ height:18px; margin:0 6px 0 0; vertical-align:-3px; } </style> <div class="col-lg-4"> <div class="ttm_single_image-wrapper res-991-pt-30"> <div class="featured-imagebox featured-imagebox-course style2 bulletin-card"> <!-- ====== Header with Random Auto-Typing ====== --> <div class="bulletin-head"> <h3 class="bulletin-title"> <span id="bulletinTyping" class="typing-caret" style="color:#ea0000;">Information Bulletin »»»</span> </h3> </div> <!-- ====== Notices ====== --> <div class="notice-shell"> <marquee direction="up" scrolldelay="4" scrollamount="4" onmouseover="this.stop();" onmouseout="this.start();"> <?php // Fetch latest notices $stmt = $conn->prepare("SELECT id, date, ntext, nurl, nurl1 FROM nboard ORDER BY date DESC, id DESC"); $stmt->execute(); $res = $stmt->get_result(); if ($res->num_rows > 0) { while ($row = $res->fetch_assoc()) { $date = htmlspecialchars($row['date'] ?? ''); $text = htmlspecialchars($row['ntext'] ?? ''); $isNew = false; if (!empty($row['date'])) { $noticeDate = new DateTime($row['date']); $today = new DateTime(); $diff = $today->diff($noticeDate)->days; if ($noticeDate <= $today && $diff <= 15) { $isNew = true; } } echo "<div class='notice-item'><h5 style=\"color:#490101; font-weight:600;\">"; if ($isNew) { echo "<img class='badge-new' src='images/new1.gif' alt='New'>"; } echo "<span class='notice-date' style='color:black; margin-right:6px;'>$date</span>"; if (!empty($row['nurl'])) { $link = 'uploads/notices/' . htmlspecialchars($row['nurl']); echo "<a href='$link' target='_blank' rel='noopener' style='color:#490101; text-decoration:none;'>$text</a>"; } elseif (!empty($row['nurl1'])) { $link = htmlspecialchars($row['nurl1']); if (!preg_match('~^(?:f|ht)tps?://~i', $link)) { $link = 'https://' . $link; } echo "<a href='$link' target='_blank' rel='noopener' style='color:#490101; text-decoration:none;'>$text</a>"; } else { echo $text; } echo "</h5></div>"; } } else { echo "<div class='notice-item'><h5 style='color:#490101;'><span class='notice-date' style='color:black;'>β</span>We will soon update this page</h5></div>"; } ?> </marquee> </div> </div> </div> </div> <!-- ====== Random Auto-Typing Script (put once, after the HTML) ====== --> <script> (function(){ // Random rotating phrases for the heading const phrases = [ "Information Bulletin >>>", "Latest Updates >>>", "Notices & Circulars >>>", "Important Announcements >>>", "Campus Notice Board >>>" ]; const el = document.getElementById('bulletinTyping'); if(!el) return; let phrase = "", idx = 0, pos = 0, deleting = false; // pick next random phrase (different from current) function nextPhrase(){ let next; do { next = phrases[Math.floor(Math.random()*phrases.length)]; } while(next === phrase); phrase = next; } function typeLoop(){ const current = phrase; const shown = el.textContent.replace(/\u00BB/g, '>'); // just in case // typing or deleting if (!deleting) { pos++; el.textContent = current.slice(0, pos); if (pos === current.length) { deleting = true; setTimeout(typeLoop, 1300); // pause when complete return; } } else { pos--; el.textContent = current.slice(0, pos); if (pos === 0) { deleting = false; nextPhrase(); } } // speed const speed = deleting ? 35 : 55; setTimeout(typeLoop, speed + Math.floor(Math.random()*60)); // slight randomness } // init nextPhrase(); el.textContent = ""; typeLoop(); })(); </script> </div><!-- row end --> </div> </section> <!--introduction-section--> <!-- Achievers Section --> <section class="ttm-row course-section ttm-bgcolor-grey clearfix"> <div class="container"> <div class="section-title title-style-center_text"> <div class="title-header"> <h3 class="title" style="color:#490101; font-size:30px;">Our Top Achievers</h3> </div> <div class="heading-seperator"><span></span></div> </div> <!-- Swiper Container --> <div class="swiper achievers-swiper"> <div class="swiper-wrapper"> <?php // Check if marks_pct column exists $colCheck = $conn->query("SHOW COLUMNS FROM fboard LIKE 'marks_pct'"); $hasMarks = ($colCheck && $colCheck->num_rows > 0); $stmt = $conn->prepare("SELECT fimg, fname, des, exp, qual" . ($hasMarks ? ", marks_pct" : "") . " FROM fboard ORDER BY id ASC"); $stmt->execute(); $res = $stmt->get_result(); if ($res->num_rows > 0) { while ($row = $res->fetch_assoc()) { $fimg = htmlspecialchars($row['fimg']); $fname = htmlspecialchars($row['fname']); $des = htmlspecialchars($row['des']); $exp = htmlspecialchars($row['exp']); $qual = htmlspecialchars($row['qual']); $marks = $hasMarks && $row['marks_pct'] !== null ? number_format((float)$row['marks_pct'], 2) . "%" : ""; ?> <div class="swiper-slide"> <div class="featured-imagebox featured-imagebox-post style1"> <div class="ttm-post-thumbnail featured-thumbnail position-relative"> <img class="img-fluid" src="uploads/faculty/<?php echo $fimg; ?>" alt="achiever image" style="object-fit:contain; width:100%; height:300px;"> <?php if ($marks): ?> <span class="marks-badge"><?php echo $marks; ?></span> <?php endif; ?> </div> <div class="featured-content featured-content-post"> <div class="ttm-box-post-date"> <span class="ttm-entry-date"><?php echo $fname; ?></span> </div> <div class="post-meta"> <span><i class="fa fa-user"></i> Course: <?php echo $des; ?></span><br> <span><i class="fa fa-tag"></i> Session: <?php echo $exp; ?></span> </div> <div class="post-title featured-title"> <h5>Placed at: <?php echo $qual; ?></h5> </div> </div> </div> </div> <?php } } else { echo "<p>No Records Found</p>"; } ?> </div> </div> </div> </section> <!-- Custom Style for Marks Badge --> <style> .marks-badge { position: absolute; top: 10px; right: 10px; background: #ea0000; color: #fff; font-size: 13px; padding: 6px 10px; font-weight: 700; border-radius: 999px; box-shadow: 0 4px 10px rgba(234, 0, 0, 0.25); } </style> <section class="school-section"> <!-- ===== INTERNAL CSS ===== --> <style> .school-section{ padding:80px 8%; background:linear-gradient(135deg,#e9f2ff,#ffffff); font-family:'Poppins',sans-serif; overflow:hidden; } .school-section .section-title{ text-align:center; font-size:42px; font-weight:700; color:#1e3c72; animation:fadeDown 1s ease; } .school-section .section-subtitle{ text-align:center; max-width:720px; margin:15px auto 60px; font-size:17px; color:#555; animation:fadeUp 1.2s ease; } .school-section .card-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:30px; } .school-section .school-card{ background:#fff; padding:35px 25px; border-radius:22px; box-shadow:0 25px 45px rgba(0,0,0,0.08); text-align:center; transform:translateY(50px) scale(0.95); opacity:0; transition:all 0.6s ease; position:relative; } .school-section .school-card::before{ content:''; position:absolute; inset:0; border-radius:22px; background:linear-gradient(135deg,#1e3c72,#2a7fff); opacity:0; transition:0.5s; z-index:-1; } .school-section .school-card:hover{ transform:translateY(-14px) scale(1.05); box-shadow:0 40px 70px rgba(30,60,114,0.25); } .school-section .school-card:hover::before{ opacity:0.08; } .school-section .school-card span{ font-size:48px; display:inline-block; margin-bottom:15px; animation:float 3s ease-in-out infinite; } .school-section .school-card h3{ font-size:22px; color:#1e3c72; margin-bottom:10px; } .school-section .school-card p{ font-size:15px; color:#555; line-height:1.6; } @keyframes fadeDown{ from{opacity:0;transform:translateY(-30px);} to{opacity:1;transform:translateY(0);} } @keyframes fadeUp{ from{opacity:0;transform:translateY(30px);} to{opacity:1;transform:translateY(0);} } @keyframes float{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} } </style> <!-- ===== CONTENT ===== --> <h2 class="section-title">Holistic Education at Our School</h2> <p class="section-subtitle"> A perfect blend of academics, technology, creativity, sports, and values to ensure complete development of every child. </p> <div class="card-grid"> <div class="school-card"> <span>π</span> <h3>Holistic Education</h3> <p>Balanced education schedule focusing on academics, physical development, creativity, and moral values.</p> </div> <div class="school-card"> <span>π©βπ«</span> <h3>Excellent Teachers</h3> <p>Highly qualified and experienced teachers giving individual attention to every student.</p> </div> <div class="school-card"> <span>π₯οΈ</span> <h3>Smart Classrooms</h3> <p>Technology-enabled classrooms for interactive and easy learning.</p> </div> <div class="school-card"> <span>π</span> <h3>Modern Learning Tools</h3> <p>Advanced digital tools to enhance conceptual clarity and participation.</p> </div> <div class="school-card"> <span>π</span> <h3>Fun Activities</h3> <p>Creative activities, games, and programs to build confidence and teamwork.</p> </div> <div class="school-card"> <span>π³</span> <h3>Green Playground</h3> <p>Large green playground for sports, exercise, and outdoor development.</p> </div> <div class="school-card"> <span>β€οΈ</span> <h3>Loving Environment</h3> <p>A safe, caring, and motivating environment for every child.</p> </div> <div class="school-card"> <span>π</span> <h3>School Bus Service</h3> <p>Safe and reliable transportation covering Baripada and nearby areas.</p> </div> </div> <!-- ===== INTERNAL JS (SCROLL ANIMATION) ===== --> <script> const cards=document.querySelectorAll('.school-section .school-card'); const observer=new IntersectionObserver(entries=>{ entries.forEach(entry=>{ if(entry.isIntersecting){ entry.target.style.opacity='1'; entry.target.style.transform='translateY(0) scale(1)'; } }); },{threshold:0.2}); cards.forEach(card=>observer.observe(card)); </script> </section> <section class="sai-grade-journey"> <!-- ===== GSAP CDN ===== --> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/ScrollTrigger.min.js"></script> <style> .sai-grade-journey{ padding:120px 8%; background:linear-gradient(135deg,#0b3c88,#0e2f5f); font-family:'Poppins',sans-serif; color:#fff; overflow:hidden; position:relative; } .sai-grade-journey::after{ content:''; position:absolute; right:-150px; bottom:-150px; width:350px; height:350px; background:#f4c430; border-radius:50%; opacity:0.15; } /* ===== TITLE ===== */ .sai-title{ text-align:center; max-width:900px; margin:0 auto 70px; } .sai-title h2{ font-size:54px; font-weight:900; line-height:1.15; } .sai-title h2 span{ color:#f4c430; } .sai-title p{ margin-top:22px; font-size:18px; font-weight:500; color:#e5efff; line-height:1.8; } /* ===== GRID ===== */ .sai-timeline{ display:grid; grid-template-columns:repeat(2,1fr); gap:35px; } .sai-stage{ background:#ffffff; color:#1e293b; padding:38px 30px; border-radius:26px; position:relative; box-shadow:0 30px 60px rgba(0,0,0,0.4); transform:translateY(80px); opacity:0; transition:0.4s ease; } .sai-stage::before{ content:''; position:absolute; top:0; left:0; width:100%; height:6px; background:linear-gradient(90deg,#c62828,#f4c430); border-radius:26px 26px 0 0; } .sai-stage h3{ font-size:24px; font-weight:700; margin-bottom:10px; color:#c62828; } .sai-stage span{ display:inline-block; font-size:13px; font-weight:700; color:#0b3c88; margin-bottom:14px; letter-spacing:0.4px; } .sai-stage p{ font-size:16px; font-weight:500; line-height:1.7; color:#334155; } .sai-stage:hover{ transform:scale(1.06); box-shadow:0 45px 90px rgba(0,0,0,0.55); } /* ===== CTA BUTTON ===== */ .sai-cta{ text-align:center; margin-top:80px; } .sai-cta a{ display:inline-block; padding:18px 46px; font-size:18px; font-weight:700; color:#0b3c88; background:#f4c430; border-radius:60px; text-decoration:none; box-shadow:0 20px 40px rgba(0,0,0,0.35); position:relative; overflow:hidden; } .sai-cta a::after{ content:''; position:absolute; inset:0; background:rgba(255,255,255,0.4); opacity:0; transition:0.4s; } .sai-cta a:hover::after{ opacity:1; } /* ===== MOBILE ===== */ @media(max-width:768px){ .sai-title h2{font-size:38px;} .sai-timeline{grid-template-columns:1fr;} } </style> <!-- ===== CONTENT ===== --> <div class="sai-title"> <h3 style="color:white">Learning Journey from <span>Nursery to Class VIII</span></h3> <p> At Sai Adarsha International School, every stage of learning is thoughtfully structured to build strong academics, confidence, discipline, and lifelong curiosity in every child. </p> </div> <div class="sai-timeline"> <div class="sai-stage"> <h3>Nursery</h3> <span>Play β’ Care β’ Curiosity</span> <p> A joyful and safe environment where children learn through play, stories, music, and activities that develop confidence and social skills. </p> </div> <div class="sai-stage"> <h3>LKG β UKG</h3> <span>Foundation Years</span> <p> A strong academic base in language, numbers, creativity, and discipline through interactive and activity-based learning. </p> </div> <div class="sai-stage"> <h3>Class I β III</h3> <span>Exploration Stage</span> <p> Focus on concept clarity, reading habits, curiosity, and creativity with balanced academic development. </p> </div> <div class="sai-stage"> <h3>Class IV β V</h3> <span>Skill Building</span> <p> Structured learning to strengthen logical thinking, communication skills, and problem-solving abilities. </p> </div> <div class="sai-stage"> <h3>Class VI β VIII</h3> <span>Academic Excellence</span> <p> CBSE-oriented education focusing on discipline, leadership, confidence, and preparation for higher academic challenges. </p> </div> </div> <!-- ===== CTA ===== --> <div class="sai-cta"> <a href="admission.php">Apply for Admission</a> </div> <!-- ===== GSAP ===== --> <script> gsap.registerPlugin(ScrollTrigger); gsap.utils.toArray(".sai-stage").forEach((card, i) => { gsap.to(card, { scrollTrigger: { trigger: card, start: "top 85%", }, opacity: 1, y: 0, duration: 1, delay: i * 0.15, ease: "power4.out" }); }); /* CTA pulse animation */ gsap.to(".sai-cta a", { scale:1.08, repeat:-1, yoyo:true, duration:1.4, ease:"power1.inOut" }); </script> </section> <section class="about-fixed"> <div class="about-wrap-fixed"> <!-- LEFT IMAGE GRID --> <div class="about-images-fixed anim-left"> <div class="img-big"> <img src="images/ab.jpg" alt=""> </div> <div class="img-circle"> <img src="images/cd.jpg" alt=""> </div> <div class="img-small"> <img src="images/ef.jpg" alt=""> </div> </div> <!-- RIGHT CONTENT --> <div class="about-content-fixed anim-right"> <h2 style="font-size:34px;"> Why Sai Adarsha International School </h2> <p class="desc"> Sai Adarsha International School stands as a benchmark of excellence among CBSE institutions and is proudly recognized as one of the best CBSE schools in Baripada, Mayurbhanj. From Nursery to Class VIII, we deliver a future-ready CBSE education that builds strong academic foundations while nurturing confidence, discipline, and character in every child.<br/><br/> What truly sets us apart is our commitment to complete child development. With expert teachers, smart classrooms, modern learning tools, and a carefully designed academic schedule, we transform learning into an engaging and meaningful experience.<br/><br/> Our safe, green, and student-friendly campus creates the perfect environment for young minds to thrive. Backed by a caring atmosphere, disciplined culture, and reliable school bus services, we offer parents peace of mind. </p> <div class="actions"> <a href="admission.php" class="btn pulse">Apply Now β</a> <div class="call pulse"> <div class="call-icon">π</div> <div> <small>Call Now</small> <strong>7507036060</strong> </div> </div> </div> </div> </div> </section> <!-- ===== GSAP CDN ===== --> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script> <script> gsap.registerPlugin(ScrollTrigger); // LEFT IMAGES ANIMATION gsap.from(".anim-left > div", { scrollTrigger: { trigger: ".about-fixed", start: "top 70%", once: true }, y: 80, opacity: 0, duration: 1, stagger: 0.25, ease: "power3.out" }); // RIGHT CONTENT ANIMATION gsap.from(".anim-right", { scrollTrigger: { trigger: ".about-fixed", start: "top 70%", once: true }, x: 80, opacity: 0, duration: 1.2, ease: "power3.out" }); </script> <style> /* ================= BASE ================= */ .about-fixed{ padding:90px 16px; font-family:Poppins,sans-serif; } .about-wrap-fixed{ max-width:1200px; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; } /* ================= IMAGE GRID ================= */ .about-images-fixed{ display:grid; grid-template-columns:1fr 1fr; gap:24px; } .img-big{ grid-row:span 2; } .img-big img{ width:100%; border-radius:180px 0 180px 0; } .img-circle{ width:220px; height:220px; border:3px dashed #ff9800; border-radius:50%; padding:8px; justify-self:center; } .img-circle img{ width:100%; height:100%; border-radius:50%; object-fit:cover; } .img-small img{ width:100%; border-radius:26px; } /* ================= CONTENT ================= */ .about-content-fixed h2{ font-size:42px; margin-bottom:16px; } .desc{ color:#6b7280; line-height:1.7; } /* ================= ACTIONS ================= */ .actions{ margin-top:34px; display:flex; gap:30px; align-items:center; } .btn{ background:#ff9800; color:#fff; padding:14px 34px; border-radius:30px; text-decoration:none; font-weight:600; transition:transform .3s ease; } .call{ display:flex; gap:12px; align-items:center; } .call-icon{ width:46px; height:46px; background:#1f7a63; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; } /* ================= HOVER PULSE ================= */ .pulse:hover{ transform:scale(1.05); } /* ================= MOBILE ================= */ @media(max-width:900px){ .about-wrap-fixed{ grid-template-columns:1fr; gap:40px; } .about-images-fixed{ grid-template-columns:1fr; } .about-content-fixed h2{ font-size:30px; } .actions{ flex-direction:column; } } </style> <!-- ================= TESTIMONIALS ================= --> <section class="testimonials"> <h2>What Parents Say</h2> <div class="heading-separator"><span></span></div> <div class="testimonial-carousel"> <div class="testimonial-track"> <?php $stmt = $conn->prepare("SELECT name, role, message, photo, rating FROM testimonials ORDER BY id DESC LIMIT 12"); $stmt->execute(); $res = $stmt->get_result(); if ($res->num_rows > 0) { while ($row = $res->fetch_assoc()) { $name = htmlspecialchars($row['name']); $role = htmlspecialchars($row['role']); $message = htmlspecialchars($row['message']); $rating = (int)$row['rating']; $photo = !empty($row['photo']) ? "uploads/testimonials/" . htmlspecialchars($row['photo']) : "images/default-user.png"; ?> <div class="testimonial-card"> <div class="avatar"> <img src="<?php echo $photo; ?>" alt="<?php echo $name; ?>"> </div> <p class="message">"<?php echo $message; ?>"</p> <div class="stars"> <?php for($i=1;$i<=$rating;$i++) echo "β "; ?> </div> <h4><?php echo $name; ?> <span><?php echo $role; ?></span> </h4> </div> <?php } } else { echo "<p>No testimonials available</p>"; } ?> </div> </div> </section> <!-- ===== GSAP ===== --> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script> <script> gsap.registerPlugin(ScrollTrigger); // Heading animation gsap.from(".testimonials h2", { scrollTrigger: { trigger: ".testimonials", start: "top 80%" }, y: -40, opacity: 0, duration: 1 }); // Cards animation gsap.from(".testimonial-card", { scrollTrigger: { trigger: ".testimonial-track", start: "top 80%" }, y: 60, opacity: 0, duration: 1, stagger: 0.25, ease: "power3.out" }); </script> <style> /* ================= SECTION ================= */ .testimonials{ padding:90px 20px; background:linear-gradient(135deg,#f9fbff,#eef3ff); text-align:center; font-family:Poppins,sans-serif; } .testimonials h2{ font-size:38px; color:#0b2a5b; font-weight:700; } /* ================= SEPARATOR ================= */ .heading-separator{ margin:14px auto 50px; } .heading-separator span{ width:120px; height:4px; background:linear-gradient(90deg,#ff9800,#ff5722); display:block; margin:auto; border-radius:5px; } /* ================= CAROUSEL ================= */ .testimonial-carousel{ max-width:1200px; margin:auto; overflow:hidden; } .testimonial-track{ display:flex; gap:30px; animation:slide 28s linear infinite; } .testimonial-carousel:hover .testimonial-track{ animation-play-state:paused; } /* ================= CARD ================= */ .testimonial-card{ flex:0 0 32%; background:rgba(255,255,255,0.75); backdrop-filter:blur(12px); border-radius:22px; padding:35px 25px; box-shadow:0 20px 40px rgba(0,0,0,0.08); transition:transform .4s ease; } .testimonial-card:hover{ transform:translateY(-12px); } /* ================= AVATAR ================= */ .avatar{ width:95px; height:95px; margin:-80px auto 15px; border-radius:50%; background:#fff; padding:5px; box-shadow:0 10px 25px rgba(0,0,0,0.15); } .avatar img{ width:100%; height:100%; border-radius:50%; object-fit:cover; } /* ================= CONTENT ================= */ .message{ font-size:15px; color:#444; line-height:1.7; font-style:italic; } .stars{ color:#f5b50a; font-size:18px; margin:10px 0; } .testimonial-card h4{ color:#0b2a5b; font-weight:600; } .testimonial-card h4 span{ display:block; font-size:13px; color:#777; margin-top:4px; } /* ================= AUTO SLIDE ================= */ @keyframes slide{ 0%{transform:translateX(0)} 100%{transform:translateX(-60%)} } /* ================= MOBILE ================= */ @media(max-width:900px){ .testimonial-card{flex:0 0 80%} .testimonial-track{animation:slideMobile 25s linear infinite} } @keyframes slideMobile{ 0%{transform:translateX(0)} 100%{transform:translateX(-200%)} } </style> </div><!--site-main end--> <?php include("footer.php"); ?>
Upload File
Create Folder