{"id":18721,"date":"2026-01-15T03:56:53","date_gmt":"2026-01-15T03:56:53","guid":{"rendered":"https:\/\/plan.nrru.ac.th\/?page_id=18721"},"modified":"2026-01-15T06:55:03","modified_gmt":"2026-01-15T06:55:03","slug":"doc69-2","status":"publish","type":"page","link":"https:\/\/plan.nrru.ac.th\/?page_id=18721","title":{"rendered":"\u0e04\u0e25\u0e31\u0e07\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"18721\" class=\"elementor elementor-18721\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9115678 e-flex e-con-boxed e-con e-parent\" data-id=\"9115678\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca85739 elementor-widget elementor-widget-html\" data-id=\"ca85739\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"nrru-document-archive-root\">\r\n  <!-- Load Scripts only if not present -->\r\n  <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\r\n  <script src=\"https:\/\/unpkg.com\/react@18\/umd\/react.production.min.js\"><\/script>\r\n  <script src=\"https:\/\/unpkg.com\/react-dom@18\/umd\/react-dom.production.min.js\"><\/script>\r\n  <script src=\"https:\/\/unpkg.com\/@babel\/standalone\/babel.min.js\"><\/script>\r\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/PapaParse\/5.3.2\/papaparse.min.js\"><\/script>\r\n\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Sarabun:wght@300;400;600;700;800&display=swap');\r\n    \r\n    #nrru-document-archive-root {\r\n      font-family: 'Sarabun', sans-serif;\r\n      background-color: #ffffff;\r\n      min-height: 600px;\r\n      color: #1a1a1a;\r\n    }\r\n\r\n    \/* Custom Luxury Theme Colors *\/\r\n    :root {\r\n      --primary-luxury: #1e3a8a; \/* Royal Blue *\/\r\n      --accent-luxury: #b45309;  \/* Deep Gold\/Amber *\/\r\n      --text-main: #000000;\r\n    }\r\n\r\n    #nrru-document-archive-root .luxury-shadow {\r\n      box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.08);\r\n    }\r\n\r\n    #nrru-document-archive-root .line-clamp-2 {\r\n      display: -webkit-box;\r\n      -webkit-line-clamp: 2;\r\n      -webkit-box-orient: vertical;  \r\n      overflow: hidden;\r\n    }\r\n\r\n    #nrru-document-archive-root .card-hover {\r\n      transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);\r\n      border: 1px solid #f1f5f9;\r\n    }\r\n\r\n    #nrru-document-archive-root .card-hover:hover {\r\n      transform: translateY(-8px);\r\n      box-shadow: 0 25px 50px -12px rgba(30, 58, 138, 0.15);\r\n      border-color: #d1d5db;\r\n    }\r\n\r\n    #nrru-document-archive-root .gold-gradient {\r\n      background: linear-gradient(135deg, #b45309 0%, #d97706 100%);\r\n    }\r\n\r\n    #nrru-document-archive-root .blue-gradient {\r\n      background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%);\r\n    }\r\n\r\n    \/* \u0e2a\u0e44\u0e15\u0e25\u0e4c\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e2a\u0e35\u0e14\u0e33\u0e40\u0e19\u0e49\u0e19\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19 *\/\r\n    #nrru-document-archive-root .text-strong {\r\n      color: #000000 !important;\r\n      font-weight: 700;\r\n    }\r\n\r\n    \/* \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a WordPress Mobile *\/\r\n    @media (max-width: 640px) {\r\n      #nrru-document-archive-root .mobile-padding {\r\n        padding-left: 1rem;\r\n        padding-right: 1rem;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <div id=\"nrru-app-content\"><\/div>\r\n\r\n  <script type=\"text\/babel\">\r\n    const { useState, useEffect, useMemo } = React;\r\n\r\n    const Icon = ({ name, size = 20, className = \"\" }) => {\r\n      const icons = {\r\n        search: <path d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" \/>,\r\n        download: <path d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4\" \/>,\r\n        grid: <path d=\"M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2 2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z\" \/>,\r\n        list: <path d=\"M4 6h16M4 12h16M4 18h16\" \/>,\r\n        loader: <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\" \/>,\r\n        external: <path d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\" \/>,\r\n        calendar: <path d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" \/>,\r\n        filter: <path d=\"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z\" \/>\r\n      };\r\n\r\n      return (\r\n        <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className={className}>\r\n          {icons[name]}\r\n        <\/svg>\r\n      );\r\n    };\r\n\r\n    function App() {\r\n      const [data, setData] = useState([]);\r\n      const [loading, setLoading] = useState(true);\r\n      const [searchTerm, setSearchTerm] = useState('');\r\n      const [selectedYear, setSelectedYear] = useState('All');\r\n      const [selectedType, setSelectedType] = useState('All');\r\n      const [viewMode, setViewMode] = useState('grid');\r\n\r\n      useEffect(() => {\r\n        const csvFileUrl = \"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vRhC-drRNxZNHCkqQFC-OAyShRm0kvaRqfBtH_HvXVmPthOgYqDoSRlSl-LRMwbeH_dToUvoWLfDiZ0\/pub?output=csv\"; \r\n        \r\n        Papa.parse(csvFileUrl, {\r\n          download: true,\r\n          header: true,\r\n          complete: (results) => {\r\n            const formatted = results.data.map(item => {\r\n              const timeStr = item['\u0e1b\u0e23\u0e30\u0e17\u0e31\u0e1a\u0e40\u0e27\u0e25\u0e32'] || \"\";\r\n              \r\n              \/\/ \u0e1f\u0e31\u0e07\u0e01\u0e4c\u0e0a\u0e31\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e1b\u0e23\u0e30\u0e17\u0e31\u0e1a\u0e40\u0e27\u0e25\u0e32\u0e40\u0e1b\u0e47\u0e19 Date Object \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e17\u0e35\u0e48\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\r\n              \/\/ \u0e23\u0e2d\u0e07\u0e23\u0e31\u0e1a\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a \"DD\/MM\/YYYY, HH:MM:SS\"\r\n              let sortDate = new Date(0);\r\n              try {\r\n                if (timeStr) {\r\n                  const parts = timeStr.split(\/[\\\/\\s,:]+\/);\r\n                  if (parts.length >= 3) {\r\n                    const day = parseInt(parts[0]);\r\n                    const month = parseInt(parts[1]) - 1;\r\n                    const year = parseInt(parts[2]);\r\n                    const hour = parseInt(parts[3]) || 0;\r\n                    const minute = parseInt(parts[4]) || 0;\r\n                    const second = parseInt(parts[5]) || 0;\r\n                    sortDate = new Date(year, month, day, hour, minute, second);\r\n                  }\r\n                }\r\n              } catch (e) {\r\n                console.error(\"Date parse error\", e);\r\n              }\r\n\r\n              return {\r\n                timestamp: timeStr,\r\n                year: parseInt(item['\u0e1b\u0e35']) || 0,\r\n                type: item['\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23'] || \"\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b\",\r\n                title: item['\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07'] || \"\",\r\n                cover: item['link \u0e23\u0e39\u0e1b'] || \"\",\r\n                file: item['link file'] || \"#\",\r\n                sortValue: sortDate.getTime()\r\n              };\r\n            }).filter(item => item.title);\r\n\r\n            \/\/ \u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e15\u0e32\u0e21\u0e1b\u0e23\u0e30\u0e17\u0e31\u0e1a\u0e40\u0e27\u0e25\u0e32 (Timestamp) \u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14\u0e02\u0e36\u0e49\u0e19\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e2a\u0e21\u0e2d\r\n            const sorted = formatted.sort((a, b) => b.sortValue - a.sortValue);\r\n            \r\n            setData(sorted);\r\n            setLoading(false);\r\n          },\r\n          error: (err) => {\r\n            console.error(\"Error loading CSV:\", err);\r\n            setLoading(false);\r\n          }\r\n        });\r\n      }, []);\r\n\r\n      const years = useMemo(() => ['All', ...new Set(data.map(item => String(item.year)))].sort((a, b) => b - a), [data]);\r\n      const types = useMemo(() => ['All', ...new Set(data.map(item => item.type))].sort((a, b) => a.localeCompare(b, 'th')), [data]);\r\n\r\n      const filteredData = useMemo(() => {\r\n        return data.filter(item => {\r\n          const matchesSearch = item.title.toLowerCase().includes(searchTerm.toLowerCase());\r\n          const matchesYear = selectedYear === 'All' || String(item.year) === selectedYear;\r\n          const matchesType = selectedType === 'All' || item.type === selectedType;\r\n          return matchesSearch && matchesYear && matchesType;\r\n        });\r\n      }, [searchTerm, selectedYear, selectedType, data]);\r\n\r\n      const displayData = useMemo(() => {\r\n        \/\/ \u0e2b\u0e32\u0e01\u0e44\u0e21\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e01\u0e23\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 \u0e43\u0e2b\u0e49\u0e41\u0e2a\u0e14\u0e07 12 \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e23\u0e27\u0e14\u0e40\u0e23\u0e47\u0e27\r\n        if (searchTerm === '' && selectedYear === 'All' && selectedType === 'All') return filteredData.slice(0, 12);\r\n        return filteredData;\r\n      }, [filteredData, searchTerm, selectedYear, selectedType]);\r\n\r\n      if (loading) {\r\n        return (\r\n          <div className=\"flex flex-col items-center justify-center py-32 bg-white rounded-3xl\">\r\n            <div className=\"animate-spin mb-6 text-blue-900\"><Icon name=\"loader\" size={60} \/><\/div>\r\n            <p className=\"text-xl font-bold tracking-widest text-red-900 uppercase animate-pulse\">...\u0e23\u0e2d\u0e2a\u0e31\u0e01\u0e04\u0e23\u0e39\u0e48 \u0e01\u0e33\u0e25\u0e31\u0e07\u0e42\u0e2b\u0e25\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25...<\/p>\r\n          <\/div>\r\n        );\r\n      }\r\n\r\n      return (\r\n        <div className=\"py-10 mobile-padding max-w-7xl mx-auto\">\r\n           \r\n           \r\n\r\n          {\/* Luxury Filter Section *\/}\r\n          <div className=\"bg-white p-8 rounded-[2rem] luxury-shadow border border-gray-50 mb-12\">\r\n            <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8 items-end\">\r\n              <div className=\"lg:col-span-2\">\r\n                <label className=\"flex items-center gap-2 text-[16px] font-black text-blue-900 uppercase mb-3 ml-1 tracking-wider\">\r\n                  <Icon name=\"search\" size={16} \/> \u0e04\u0e49\u0e19\u0e2b\u0e32\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\r\n                <\/label>\r\n                <div className=\"relative group\">\r\n                  <input \r\n                    type=\"text\" \r\n                    placeholder=\"\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23...\" \r\n                    className=\"w-full pl-6 pr-4 py-4 bg-gray-50 border-2 border-transparent rounded-2xl focus:outline-none focus:border-blue-900 focus:bg-white transition-all font-bold text-black\"\r\n                    value={searchTerm}\r\n                    onChange={(e) => setSearchTerm(e.target.value)}\r\n                  \/>\r\n                <\/div>\r\n              <\/div>\r\n              <div>\r\n                <label className=\"flex items-center gap-2 text-[16px] font-black text-blue-900 uppercase mb-3 ml-1 tracking-wider\">\r\n                  <Icon name=\"calendar\" size={16} \/> \u0e1b\u0e35 \u0e1e.\u0e28.\r\n                <\/label>\r\n                <select className=\"w-full bg-gray-50 border-2 border-transparent rounded-2xl px-6 py-4 font-bold text-black appearance-none cursor-pointer focus:border-blue-900\" value={selectedYear} onChange={(e) => setSelectedYear(e.target.value)}>\r\n                  <option value=\"All\">\u0e17\u0e38\u0e01\u0e1b\u0e35 \u0e1e.\u0e28.<\/option>\r\n                  {years.filter(y => y !== 'All').map(y => <option key={y} value={y}>{y}<\/option>)}\r\n                <\/select>\r\n              <\/div>\r\n              <div>\r\n                <label className=\"flex items-center gap-2 text-[16px] font-black text-blue-900 uppercase mb-3 ml-1 tracking-wider\">\r\n                  <Icon name=\"filter\" size={16} \/> \u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\r\n                <\/label>\r\n                <select className=\"w-full bg-gray-50 border-2 border-transparent rounded-2xl px-6 py-4 font-bold text-black appearance-none cursor-pointer focus:border-blue-900\" value={selectedType} onChange={(e) => setSelectedType(e.target.value)}>\r\n                  <option value=\"All\">\u0e17\u0e38\u0e01\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48<\/option>\r\n                  {types.filter(t => t !== 'All').map(t => <option key={t} value={t}>{t}<\/option>)}\r\n                <\/select>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          {\/* Main Content Area *\/}\r\n          {displayData.length > 0 ? (\r\n            viewMode === 'grid' ? (\r\n              <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-10\">\r\n                {displayData.map((doc, idx) => (\r\n                  <div key={idx} onClick={() => window.open(doc.file, '_blank')} className=\"group card-hover bg-white rounded-[2rem] overflow-hidden flex flex-col cursor-pointer\">\r\n                    <div className=\"relative aspect-[3\/4.2] overflow-hidden bg-gray-100 m-3 rounded-[1.5rem]\">\r\n                      <img src={doc.cover} className=\"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110\" onError={(e) => e.target.src='https:\/\/placehold.co\/400x600\/1e3a8a\/ffffff?text=NRRU+Digital'} \/>\r\n                      <div className=\"absolute top-4 right-4 gold-gradient text-white px-3 py-1.5 rounded-full text-[10px] font-black shadow-lg\">\u0e1e.\u0e28. {doc.year}<\/div>\r\n                      <div className=\"absolute inset-0 bg-black\/40 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center\">\r\n                         <div className=\"bg-white text-black px-6 py-2.5 rounded-full font-black text-xs flex items-center gap-2 transform translate-y-4 group-hover:translate-y-0 transition-all duration-300\">\r\n                           <Icon name=\"external\" size={16} \/> \u0e2d\u0e48\u0e32\u0e19\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\r\n                         <\/div>\r\n                      <\/div>\r\n                    <\/div>\r\n                    <div className=\"p-6 pt-2 flex flex-col flex-grow text-center items-center\">\r\n                      <span className=\"text-[9px] font-extrabold text-blue-800 uppercase mb-3 px-3 py-1 bg-blue-50 tracking-tighter rounded-full\">{doc.type}<\/span>\r\n                       \r\n                       \r\n                    <\/div>\r\n                  <\/div>\r\n                ))}\r\n              <\/div>\r\n            ) : (\r\n              <div className=\"bg-white rounded-[2rem] border border-gray-100 overflow-hidden luxury-shadow overflow-x-auto\">\r\n                <table className=\"w-full text-left min-w-[700px]\">\r\n                  <thead className=\"bg-[#1e3a8a] text-white\">\r\n                    <tr>\r\n                      <th className=\"p-6 text-[10px] font-black uppercase tracking-widest\">\u0e1e.\u0e28.<\/th>\r\n                      <th className=\"p-6 text-[10px] font-black uppercase tracking-widest\">\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d \/ \u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23<\/th>\r\n                      <th className=\"p-6 text-[10px] font-black uppercase tracking-widest\">\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48<\/th>\r\n                      <th className=\"p-6 text-[10px] font-black uppercase tracking-widest text-center\">\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01<\/th>\r\n                    <\/tr>\r\n                  <\/thead>\r\n                  <tbody className=\"divide-y divide-gray-50\">\r\n                    {displayData.map((doc, idx) => (\r\n                      <tr key={idx} className=\"hover:bg-blue-50\/40 transition-colors cursor-pointer group\" onClick={() => window.open(doc.file, '_blank')}>\r\n                        <td className=\"p-6 font-black text-gray-400\">{doc.year}<\/td>\r\n                        <td className=\"p-6 font-bold text-black group-hover:text-blue-900 transition-colors\">{doc.title}<\/td>\r\n                        <td className=\"p-6\">\r\n                          <span className=\"text-[10px] font-black text-blue-900 uppercase py-1.5 px-4 bg-blue-50 rounded-full\">{doc.type}<\/span>\r\n                        <\/td>\r\n                        <td className=\"p-6 flex justify-center gap-3\">\r\n                          <button className=\"p-3 bg-black text-white rounded-xl shadow-lg hover:bg-blue-900 transition-all\"><Icon name=\"external\" size={16} \/><\/button>\r\n                          <a href={doc.file} onClick={(e) => e.stopPropagation()} target=\"_blank\" className=\"p-3 bg-gray-100 text-gray-400 rounded-xl hover:bg-gray-200 transition-all\"><Icon name=\"download\" size={16} \/><\/a>\r\n                        <\/td>\r\n                      <\/tr>\r\n                    ))}\r\n                  <\/tbody>\r\n                <\/table>\r\n              <\/div>\r\n            )\r\n          ) : (\r\n            <div className=\"bg-white rounded-[3rem] py-32 text-center border-2 border-dashed border-gray-100 text-gray-300\">\r\n              <Icon name=\"search\" size={60} className=\"mx-auto mb-6 opacity-20\" \/>\r\n              <p className=\"text-xl font-black italic tracking-widest\">\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13<\/p>\r\n              <button onClick={() => {setSearchTerm(''); setSelectedYear('All'); setSelectedType('All');}} className=\"mt-4 text-blue-900 font-bold hover:underline underline-offset-8\">\u0e25\u0e49\u0e32\u0e07\u0e15\u0e31\u0e27\u0e01\u0e23\u0e2d\u0e07\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14<\/button>\r\n            <\/div>\r\n          )}\r\n        <\/div>\r\n      );\r\n    }\r\n\r\n    const container = document.getElementById('nrru-app-content');\r\n    const root = ReactDOM.createRoot(container);\r\n    root.render(<App \/>);\r\n  <\/script>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p><span class=\"more-link\"><a href=\"https:\/\/plan.nrru.ac.th\/?page_id=18721\">\u0e2d\u0e48\u0e32\u0e19\u0e15\u0e48\u0e2d<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"class_list":["entry","author-jejodata","post-18721","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/plan.nrru.ac.th\/index.php?rest_route=\/wp\/v2\/pages\/18721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/plan.nrru.ac.th\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/plan.nrru.ac.th\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/plan.nrru.ac.th\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/plan.nrru.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18721"}],"version-history":[{"count":82,"href":"https:\/\/plan.nrru.ac.th\/index.php?rest_route=\/wp\/v2\/pages\/18721\/revisions"}],"predecessor-version":[{"id":18812,"href":"https:\/\/plan.nrru.ac.th\/index.php?rest_route=\/wp\/v2\/pages\/18721\/revisions\/18812"}],"wp:attachment":[{"href":"https:\/\/plan.nrru.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}