trang/thudao/core-v31.html · Bản đang chạy 11/11/2026 (khối tải nhanh từ kho)

<div id="studentWorkPage">

<!-- =========================================================
     ADMIN CHẤM BÀI / STUDENT WORK v18.5.1F

     CORE:
     student-work.js @ v18.5.1

     KIẾN TRÚC:
     ---------------------------------------------------------
     - Chấm điểm / nhận xét
     - Xóa bài
     - Quà GVCN
     - Linh thú
     - Phân trang
     - Ưu tiên bài
     - Đồng bộ
     - ADMIN
     - Reward Core Canonical Assets
     - Tài sản / Linh Thạch dùng StudentRewardSystem chung

     MODULE MÔ TẢ:
     ---------------------------------------------------------
     1. Lấy Mô tả bài tập trực tiếp từ:
        NopBaiLuyenTap
        Form Responses 1
        gid = 1837470623

     2. Cấu trúc:
        A = Dấu thời gian
        B = Họ và tên
        C = Mã học viên
        D = Tổ
        E = Khóa
        F = Tải bài tập lên
        G = Mô tả bài tập

     3. Ghép mô tả với bài theo:
        - Google Drive File ID
        - URL bài
        - Mã học viên + thời gian dự phòng

     4. Hiển thị mô tả ngay dưới tên học viên

     5. Tìm kiếm theo:
        - Họ và tên
        - Mã học viên
        - Mô tả bài tập

     6. Icon bút:
        String.fromCodePoint(0x270E)
========================================================= -->


<!-- =========================================================
     CSS v18.5.1
========================================================= -->

<!-- student-work.css v18.5.1: nay nằm trong student-work/core-v31.kho.js -->


<!-- =========================================================
     CSS MODULE MÔ TẢ
========================================================= -->

<style>

/* =========================================================
   MÔ TẢ BÀI TẬP
========================================================= */

.tp18-work-description{
    display:flex;
    align-items:flex-start;
    gap:6px;

    width:fit-content;
    max-width:100%;

    box-sizing:border-box;

    margin:5px 0 9px;

    padding:5px 9px;

    border:1px solid #eadfd3;
    border-radius:8px;

    background:#f8f3ed;

    color:#765344;

    font-size:12px;
    font-weight:600;
    line-height:1.45;

    overflow-wrap:anywhere;
}


/* =========================================================
   ICON
========================================================= */

.tp18-work-description-icon{
    flex:0 0 auto;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-width:14px;

    color:#a16e45;

    font-size:13px;
    line-height:1.35;
}


/* =========================================================
   TEXT
========================================================= */

.tp18-work-description-text{
    min-width:0;

    color:#765344;

    white-space:normal;
    overflow-wrap:anywhere;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width:600px){

    .tp18-work-description{
        gap:4px;

        margin-top:4px;
        margin-bottom:7px;

        padding:4px 7px;

        border-radius:7px;

        font-size:11px;
        line-height:1.4;
    }

    .tp18-work-description-icon{
        min-width:12px;
        font-size:12px;
    }
}

</style>


<!-- =========================================================
     GIAO DIỆN CHÍNH
========================================================= -->

<div
    class="tp18-wrap locked"
    id="tp18-wrap"
>

    <!-- =====================================================
         HEADER
    ====================================================== -->

    <div class="tp18-header">

        <h2 id="tp18-title">
            Tác phẩm học viên
        </h2>

        <p id="tp18-subtitle">
            Tác phẩm · Điểm số · Nhận xét · Linh Thú
        </p>

    </div>


    <!-- =====================================================
         ADMIN NOTE
    ====================================================== -->

    <div
        class="tp18-admin-note"
        id="tp18-admin-note"
    ></div>


    <!-- =====================================================
         STATUS
    ====================================================== -->

    <div
        class="tp18-status"
        id="tp18-status"
    ></div>


    <!-- =====================================================
         TOAST
    ====================================================== -->

    <div
        class="tp18-toast"
        id="tp18-toast"
    ></div>


    <!-- =====================================================
         NỘP BÀI
    ====================================================== -->

    <div
        class="tp18-submit"
        id="tp18-submit"
    >

        <a
            href="https://docs.google.com/forms/d/e/1FAIpQLScfsWRNbv1h3XdJq1K_llPnkmmWOll480qRB5e8aWgvJj5eUw/viewform"
            target="_blank"
            rel="noopener noreferrer"
        >
            📝 Nộp bài tập
        </a>

    </div>


    <!-- =====================================================
         TÌM KIẾM
    ====================================================== -->

    <div
        class="tp18-admin-search"
        id="tp18-admin-search"
    >

        <div class="tp18-search-box">

            <div
                class="tp18-search-icon"
                id="tp18-search-icon"
            ></div>

            <input
                autocomplete="off"
                class="tp18-search-input"
                id="tp18-search-input"
                placeholder="Tìm theo tên, mã học viên hoặc mô tả bài tập..."
                spellcheck="false"
                type="search"
            />

            <button
                class="tp18-search-clear"
                id="tp18-search-clear"
                type="button"
            >
                Xóa
            </button>

        </div>

        <div
            class="tp18-search-info"
            id="tp18-search-info"
        ></div>

    </div>


    <!-- =====================================================
         STUDENT BAR
    ====================================================== -->

    <div
        class="tp18-student-bar"
        id="tp18-student-bar"
    >

        <strong
            id="tp18-student-title"
        ></strong>

        <button
            class="tp18-grade"
            id="tp18-back"
            type="button"
        >
            Quay lại
        </button>

    </div>


    <!-- =====================================================
         PHÂN TRANG TRÊN
    ====================================================== -->

    <div
        class="tp18-pages"
        id="tp18-pages-top"
    ></div>


    <!-- =====================================================
         LOADING
    ====================================================== -->

    <div
        class="tp18-loading"
        id="tp18-loading"
    >
        Đang tải dữ liệu...
    </div>


    <!-- =====================================================
         ERROR
    ====================================================== -->

    <div
        class="tp18-error"
        id="tp18-error"
    ></div>


    <!-- =====================================================
         EMPTY
    ====================================================== -->

    <div
        class="tp18-empty"
        id="tp18-empty"
    >
        Chưa có tác phẩm.
    </div>


    <!-- =====================================================
         GRID
    ====================================================== -->

    <div
        class="tp18-grid"
        id="tp18-grid"
    ></div>


    <!-- =====================================================
         PHÂN TRANG DƯỚI
    ====================================================== -->

    <div
        class="tp18-pages"
        id="tp18-pages-bottom"
    ></div>

</div>


<!-- =========================================================
     IFRAME FORM
========================================================= -->

<iframe
    id="tp18-gift-frame"
    name="tp18-gift-frame"
    style="display:none;width:0;height:0;border:0;"
></iframe>


<!-- =========================================================
     STUDENT WORK v18.5.1F LOADER
========================================================= -->

<!-- Từ 11/11/2026: student-work.css v18.5.1, student-work.js (a6ad656) và mã khởi động của trang này nằm chung trong kho jsthanhphong.blogspot.com, file student-work/core-v31.kho.js (thay cho GitHub + jsdelivr). Không xuống dòng bên trong thẻ script. -->
<script>(function(w,d){var P='student-work/core-v31.kho.js',C='kho_f_student_work_core_v31_kho_js',R=w.__kho=w.__kho||{};if(R[P])return;R[P]=1;var ran=0,cur='',D=null,ok=0,q=[];function dec(h){var p=new DOMParser().parseFromString(h,'text/html').querySelector('pre');if(!p)return '';p.querySelectorAll('br').forEach(function(b){b.replaceWith('\n')});var t=p.textContent;if(/kho-b64/.test(p.className))t=new TextDecoder().decode(Uint8Array.from(atob(t.replace(/\s+/g,'')),function(x){return x.charCodeAt(0)}));return t}function run(s){if(ran)return;ran=1;try{w.performance.mark('kho-run:'+P)}catch(e){}try{(0,eval)(s+'\n//# sourceURL=kho/'+P)}catch(e){console.error('[KHO] '+P,e)}}function go(){if(ok)return;ok=1;q.forEach(function(f){f()})}function old(){try{for(var i=localStorage.length-1;i>=0;i--){var k=localStorage.key(i);if(k.indexOf('kho:')===0)localStorage.removeItem(k)}}catch(e){}}w[C]=function(x){var f=function(){var e=((x.feed||{}).entry||[])[0];if(!e)return;var id=String(e.id.$t).split('.post-')[1];if(cur===id)return;var s=dec(e.content.$t);if(!s)return;try{if(D)D.transaction('f','readwrite').objectStore('f').put({id:id,code:s},P)}catch(z){}if(!ran)old();run(s)};if(ok)f();else q.push(f)};try{var o=w.indexedDB.open('kho',1);o.onupgradeneeded=function(){o.result.createObjectStore('f')};o.onerror=go;o.onsuccess=function(){D=o.result;try{var g=D.transaction('f').objectStore('f').get(P);g.onerror=go;g.onsuccess=function(){var v=g.result;if(v){if(typeof v.code==='string'){cur=v.id;run(v.code)}}go()}}catch(e){go()}}}catch(e){go()}setTimeout(go,500)})(window,document)</script><script async src="https://jsthanhphong.blogspot.com/feeds/posts/default/-/f-student-work-core-v31-kho-js?alt=json-in-script&amp;max-results=1&amp;orderby=published&amp;callback=kho_f_student_work_core_v31_kho_js"></script><script>setTimeout(function(){if(!window.TP18_V1851F_STARTED){var e=document.getElementById('tp18-error');if(e){e.style.display='block';e.textContent='Không thể tải trang chấm bài. Hãy tải lại trang.';}}},30000);</script>

</div>

Nhận xét

Bài đăng phổ biến từ blog này

trang/thudao/dang-ky-hoc.html · Bản trước khi chuyển sang kho (tải từ GitHub/jsDelivr)

trang/thudao/bai-viet/benh-cua-thu-dan-duong-dai-the-trien-lam-xu-thu-va-nguy-menh-de-vuot-co-nhan.html · Bản trước khi chuyển sang kho (có video, tải từ GitHub/jsDelivr)

trang/thudao/tai-lieu.html · Bản đang chạy 11/11/2026 (khối tải nhanh từ kho)