1class HdNews extends News { 2 3 #categories = ''; 4 5 constructor() { 6 super(); 7 8 // ã«ãã´ãªä¸è¦§ãåå¾ 9 this.categories = this.getData(this.baseNewsUrl() + "others/categories.json"); 10 // å ¨ãã¼ã¿ 11 this.news = this.getData(this.baseNewsUrl() + "others/all.json"); 12 13 // ã«ãã´ãªãªã¹ãã使 14 this.viewSelectList(this.categories, 'select_cat', this.get_cat); 15 //2014年以é 16 this.viewYearList('select_year', 2014, this.get_year); // å¹´å¥ã®ã¹ã¿ã¼ãæ¸ãæããå ´åã¯ãã¡ã 17 // typeã¸ã® checkç»é² 18 this.setTypeCheck(this.get_type); 19 // textã¨ãªã¢ã¸ã®ãã¼ã¿ç»é² 20 this.setSearchText(this.get_text); 21 22 this.page_limit = 20; 23 } 24 25 /** 26 * ãªã»ãããã¿ã³ãã¯ãªã¢ãããæéã調æ´ãã 27 */ 28 resetSearch() { 29 document.getElementById('form_text_search').reset(); 30 document.getElementById('form_select_search').reset(); 31 // ã»ã¬ã¯ãèª¿æ´ 32 document.getElementById('select_year').options[0].selected = true; 33 document.getElementById('select_cat').options[0].selected = true; 34 this.get_page = 1; 35 this.search(); 36 } 37 38 /** 39 * çµãè¾¼ã¿ãæãã 40 */ 41 addSearch() { 42 this.get_page = 1; 43 this.search(); 44 } 45 46 /** 47 * æ¤ç´¢æ¡ä»¶ãããã 48 * 49 * @param page 表示ãã¼ã¸æ° 50 */ 51 search() { 52 const yearValue = document.getElementById('select_year').value; 53 const catValue = document.getElementById('select_cat').value; 54 const textValue = document.getElementById('select_text').value; 55 const typeValue = [...document.querySelectorAll("input[name=select_type]:checked")]; 56 57// console.log('text=' + textValue + 'year=' + yearValue + 'cat=' + catValue + 'type=' + typeValue) 58 // dataã®ä½æåå¾ 59 let data = this.getNewsContent(this.news, this.categories, yearValue, catValue, typeValue, textValue); 60 this.viewContent(data, this.categories, this.get_page); 61 this.viewPager(data, yearValue, catValue, typeValue, textValue, this.get_page); 62 // this.activeList(yearValue); 63 } 64 65 /** 66 * å ¨ãã¼ã¿ãã該å½ãã¼ã¿ãè¿ã 67 * 68 * @param object news ãã¥ã¼ã¹ãã¼ã¿ 69 * @param object categories ã«ãã´ãª 70 * @param integer year å¹´(鏿) 71 * @param integer cat ã«ãã´ãª(鏿) 72 * @param string type HTML | PDF (鏿) 73 * @param string text æ¤ç´¢æç« 74 */ 75 getNewsContent(news, categories, year, cat, type, text) { 76 // yearãããã°ãã®å¹´ã ãåå¾ 77 let selectData = []; 78 if (year && year !=0) { 79// console.log('year=' + year); 80 for (let i = 0; i < news.length; i++) { 81 if (year == news[i]['year']) { 82 selectData.push(news[i]); 83 } 84 } 85 } else { 86 selectData = structuredClone(news); // ãã£ã¼ãã³ãã¼ãè¡ã 87 } 88 89 // catãããã°ãã®ä¼æ¥æ å ±ãåå¾(å¥ä¼æ¥ãåé¤) 90 let selectCategories = []; 91 if (cat && cat !=0) { 92// console.log('cat=' + cat); 93// let category = this.getId2Name(categories, cat); 94 let category = cat; // ã°ã«ã¼ãä¼ç¤¾ã¨è¥å¹²å®è£ ãç°ãªãã¾ã 95 let segment; 96// console.log('category=' + category); 97 for (let i = 0; i < selectData.length; i++) { 98 selectCategories = [];//åæå 99 for (let k = 0; k < selectData[i].items.length; k++) { 100 segment = selectData[i].items[k].segment.split(','); 101 for (let j = 0; j < segment.length; j++) { 102 if (category == segment[j]) { 103 // 該å½ã®ãã¼ã¿é å 104 selectCategories.push(selectData[i].items[k]); 105 } 106 } 107 } 108 selectData[i].items = selectCategories; 109 } 110 } 111 112 // typeãããã°ãã®ã¿ã¤ãã®æ å ±ã ããåå¾ typeã¯è¤æ°ããã±ã¼ã¹ããããä»ã¯ãpdf, html 113 // htmlã¯ãlink, page ã®2ã¤ã®patternãã¨ã 114 const checkType = []; 115 if (0 < type.length) { 116 for (let checked_data of type) { 117 if (checked_data.value == 'html') { 118 checkType.push('link'); 119 checkType.push('page'); 120 } else { 121 checkType.push(checked_data.value); 122 } 123 } 124 } 125 126 let selectType = []; 127 if (checkType.length >= 1) { 128// console.log(type); 129 for (let i = 0; i < selectData.length; i++) { 130 selectType = [];//åæå 131 for (let k = 0; k < selectData[i].items.length; k++) { 132 if (checkType.indexOf(selectData[i].items[k].pattern) !== -1) { 133 // 該å½ã®ãã¼ã¿é å 134 selectType.push(selectData[i].items[k]); 135 } 136 } 137 selectData[i].items = selectType; 138 } 139 } 140 141 if (text) { 142 console.log(text); 143 // conditions[value] ãåè§£ãåè§ç©ºç½ãå ¨è§ç©ºç½ã§ãã§ã㯠144 text = text.replace(/ã/g, ' ');
145 // åå¾ã®ç©ºç½åé¤ 146 text = text.trim(); 147 if (text) { 148 // åå² 149 text = text.split(' '); 150 // 該å½ã®ãã¼ã¯ã¼ããå«ãï¼å«ã¾ãªãå ´åã¯check) or æ¤ç´¢ãªã®ã§ã©ããã®wordãå«ãã°OK ANDæ¤ç´¢ 151 for (let i = 0; i < selectData.length; i++) { 152 let selectText = [];//åæå 153 for (let k = 0; k < selectData[i].items.length; k++) { 154 let keyword = selectData[i].items[k].title; 155 for (const word of text) { 156 if (keyword.includes(word)) { 157 // 該å½ã®ãã¼ã¿é å 158 selectText.push(selectData[i].items[k]); 159 break; 160 } 161 } 162 } 163 selectData[i].items = selectText; 164 } 165 } 166 } 167 168 // 空ãã¼ã¿ãåé¤ãã é åããé¤ã(ããããæ¸ããã¦ããã®ãæ£è§£ãããªããã»ã») 169 170// console.log(selectData); 171 172 return selectData; 173 } 174 175 /** 176 * ãã¼ã¿è¡¨ç¤º 177 * 178 * @param object data 表示ç¨ãã¼ã¿ 179 * @param object categories 伿¥ãã¼ã¿ 180 * @param int 表示pageçªå· 181 * 182 */ 183 viewContent(data, categories, page) { 184// console.log(data); 185 // pageã®ãã¼ã¿ãã§ã㯠186 if (!page) { 187 page = 1; 188 } 189 let content = ''; // html 190 let news = ''; // dataã®åå¥è¦ç´ 191 let limit = this.page_limit; 192 let loop = 0; 193 let offset = (page - 1) * limit;//éå§ä½ç½® 194 // å ¨è¦ç´ ã§ã®é çª 195 let start_number = 0; 196 197 198 content += '<ul class="c-list-news">'; 199 200 for (let i = 0; i < data.length; i++) { 201 news = data[i].items; 202 let date = ''; 203 let category = ''; 204 let segment = ''; 205 let link_url = ''; 206 let target = ''; 207 208 for (let k = 0; k < news.length; k++) { 209 // éå§ä½ç½®ã¾ã§ç§»å 210 start_number++; 211 if (start_number < offset) { 212 continue; 213 } 214 215 switch (news[k]['pattern']) { 216 case 'pdf' : 217 link_url = news[k]['pdf_url']; 218 target = 'target="_blank"'; 219 break; 220 case 'link' : 221 link_url = news[k]['link']; 222 target = 'target="_blank"'; 223 break; 224 case 'page' : 225 link_url = news[k]['permalink']; 226 target = ''; 227 break; 228 default : 229 break; 230 } 231 232 content += '<li class="c-list-news__item-02">'; 233 content += '<a class="c-list-news__link" href="' + link_url + '" ' + target + '>'; 234 content += '<div class="c-list-news__info">'; 235 236 date = news[k]['date'].split('/'); 237 content += '<p class="c-list-news__date">' + date[0] + 'å¹´' + date[1] + 'æ' + date[2] + 'æ¥</p>'; 238 239 segment = news[k]['segment'].split(','); 240 for (let j = 0; j < segment.length; j++) { 241 category = this.getId2Name(categories, segment[j]); 242 if (j != 0) { 243 content += 'ã»'; 244 } 245 content += '<div class="c-list-news__category"><span class="c-tag-category">' + category + '</span></div>'; 246 } 247 content += '</div>'; 248 249 content += '<p class="c-list-news__text">'; 250 content += '<span>' + news[k]['title'] + '</span>'; 251 if (news[k]['pattern'] == 'pdf'){ 252 content += '<span class="c-list-news__text-pdf c-tag-pdf"><span class="c-tag-pdf__title">PDFï¼</span>' + news[k]['pdf_byte'] + '</span>'; 253 } 254 content += '</p></a></li>'; 255 256 257 loop++; 258 if (loop == limit) { 259 break; 260 } 261 } 262 263 if (loop == limit) { 264 break; 265 } 266 } 267 content += '</ul>'; 268 document.getElementById('newsList').innerHTML = content; 269 // console.log('endNewsList'); 270 } 271} 272 273 274/** 275 * NEWSã®ãã¼ã¿ã表示ãã 276 */ 277function eventSet() { 278 const news = new HdNews(); 279 280 // // å¹´ãªã¹ã夿´ 281 // document.getElementById('select_year').addEventListener('change', (e) => { 282 // news.search(e); 283 // }, false); 284 // // ã«ãã´ãªå¤æ´ 285 // document.getElementById('select_cat').addEventListener('change', (e) => { 286 // news.search(e); 287 // }, false); 288 // // ãã§ãã¯ããã¯ã¹å¤æ´ 289 // document.getElementById('div_select_type').addEventListener('change', (e) => { 290 // news.search(e); 291 // }, false); 292 // // ããã¹ãå ¥å 293 // document.getElementById('select_text').addEventListener('focusout', (e) => { 294 // news.search(e); 295 // }, false); 296 // ãªã»ãããã¿ã³ ã»ã¬ã¯ããªã¹ã 297 document.getElementById('select_reset').addEventListener('click', (e) => { 298 news.resetSearch(e); 299 }, false); 300 // ãµãããããã¿ã³ ã»ã¬ã¯ã 301 document.getElementById('text_submit').addEventListener('click', (e) => { 302 news.search(e); 303 }, false); 304 // select_textã§enteræ¼ãããå ´å 305 document.getElementById('select_text').addEventListener("keydown", (e) => { 306 if (e.key === "Enter" ||e.key === "NumpadEnter" ) { 307 news.search(e); 308 e.preventDefault(); // Enterãã¼å ¥åãä»ã«ä¼æ¬ãããªãããã« 309 } 310 }, false); 311 // ãµãããããã¿ã³ ã»ã¬ã¯ã 312 document.getElementById('select_submit').addEventListener('click', (e) => { 313 news.addSearch(e); 314 }, false); 315 316 news.search(); 317} 318 319document.addEventListener('DOMContentLoaded', eventSet, false);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.