PageSourceSearch

https://www.kobe-c.ac.jp/assets/data/pages/abroad/blog/index.js

js kobe-c.ac.jp collected 2026-10-02 07:24:31 UTC 6,526 bytes, 205 lines download raw bytes

1import { setting } from "../../../vars/common.js";
2import { getParam } from "../../../functions/getParam.js";
3import { getPagination } from "../../../functions/getPagination.js";
4import { flagImages } from "../../../../../../abroad/blog/flagImages.js";
5
6$(function(){
7  var bURL = $('body').data('url');
8  var site = $('body').data('site');
9  var limit = 9;
10  var searchCategory = '';
11  var searchClasses = '';
12
13  if( getParam('category') ) {
14    var urlparam1 = decodeURI(getParam('category'));
15    $('#btns a').each(function(index,elem){
16      if( urlparam1 == $(elem).data('category') ) {
17        $(elem).toggleClass('current');
18      }
19    });
20    searchCategory = urlparam1;
21  } else {
22    $('#btns a').eq(0).toggleClass('current');
23  }
24
25  if( getParam('classes') ) {
26    var urlparam2 = decodeURI(getParam('classes'));
27    $('[name="classes"]').val(urlparam2);
28    searchClasses = urlparam2;
29  }
30
31  getEntriesList(1, searchCategory, searchClasses);
32  
33  $(document).on('click','#pager a',function(e){
34    var currentPage = $(this).data('pager');
35    if( currentPage ) {
36      getEntriesList(currentPage, searchCategory, searchClasses);
37      $('html, body').animate({scrollTop: $('#gotop').offset().top});
38    }
39    e.preventDefault();
40  });
41  
42  $(document).on('click','#btns a',function(e){
43    var value1 = $(this).data('category');
44    var value2 = searchClasses;
45
46    var query = bURL;
47    if ( value1 || value2 ) {
48      query += '?';
49      if ( value1 ) query += 'category=' + value1;
50      if ( value1 && value2 ) query += '&';
51      if ( value2 ) query += 'classes=' + value2;
52    }
53    window.location.href = query;
54    e.preventDefault();
55  });
56  
57  $(document).on('change','[name="classes"]',function(){
58    var value1 = searchCategory;
59    var value2 = $('[name="classes"]').val();
60    
61    var query = bURL;
62    if ( value1 || value2 ) {
63      query += '?';
64      if ( value1 ) query += 'category=' + value1;
65      if ( value1 && value2 ) query += '&';
66      if ( value2 ) query += 'classes=' + value2;
67    }
68    window.location.href = query;
69  });
70
71  function getEntriesList(page, category, classes) {
72    $('#archive').empty();
73    $('#archive').append(setting.LOADING);
74
75    var apiRequestUrl = setting.API;
76    var siteURI = '';
77
78    var offset = 0;
79    if( page > 1 ) offset = ( limit * page ) - limit;
80
81    if( category || classes ) {
82      siteURI += 'search?';
83      siteURI += 'blog_id=' + site + '&limit=' + limit + '&offset=' + offset + '&search=';
84      if( category ) {
85        siteURI += 'category:' + category;
86      }
87      if( category && classes ) {
88        siteURI += '%20AND%20';
89      }
90      if( classes ) {
91        siteURI += 'category:' + classes
92      }
93    } else {
94      siteURI += '/sites/' + site + '/entries?';
95      siteURI += 'status=Publish' + '&limit=' + limit + '&offset=' + offset;
96    }
97
98    apiRequestUrl += siteURI;
99
100    $.ajax({
101      type: 'GET',
102      url: apiRequestUrl,
103      dataType: 'json',
104    }) 
105    .done(function(res) {
106      var total = res.totalResults;
107      var items = res.items;
108      var html = '';
109      var pagination = '';
110
111      if( total > 0 ) {
112
113        pagination = getPagination(page, total, limit);
114
115        html += '<ul class="abroadblog-post__list u-flex-lg u-flex-wrap">';
116
117        for( var n in items ) {
118          
119          var item = items[n];
120
121          var e_title = 'タイトルなし';
122          if( item.title ) {
123            e_title = item.title;
124          }
125
126          var e_category = [];
127          var e_classes = [];
128          if( item.categories.length > 0 ) {
129            for( var i in item.categories ) {
130              var cat = item.categories[i];
131              if( cat.parent == 50 ) {
132                e_category.push(cat.label);
133              } else if( cat.parent == 56 ) {
134                e_classes.push(cat.id);
135              }
136            }
137          }
138
139          var e_link = item.permalink.replace('index.html', '');
140
141          var e_thumbnail = '';
142          if( item.customFields[0].value ) {
143            var filename = item.customFields[0].value.replace(/<.+?>/g, "").replace('&amp;', '&');
144            for( var i in item.assets ) {
145              if( filename == item.assets[i].label ) {
146                e_thumbnail = item.assets[i].url;
147                break;
148              }
149            }
150          } else {
151            e_thumbnail = setting.THUMBNAIL;
152          }
153          
154          var e_period = '';
155          if( item.customFields[1].value ) {
156            e_period = item.customFields[1].value;
157          }
158
159          html += '<li class="u-flex-lg-col4">';
160            html += '<a href="'+ e_link +'" class="u-hover-underline u-hover-scale">';
161              html += '<div class="abroadblog-post__pht">';
162                html += '<img src="'+ e_thumbnail +'" alt="" height="1680" width="992" decoding="async" loading="lazy">';
163                if( e_category.length > 0 ) {
164                  html += '<span class="c-box-postcat _absolute">'+ e_category[0] +'</span>';
165                }
166                if( e_classes.length > 0 ) {
167                  html += '<img class="pht-country" src="'+ flagImages[e_classes[0]] +'" alt="" height="64" width="98" decoding="async" loading="lazy">';
168                }
169              html += '</div>';
170              html += '<div class="abroadblog-post__info">';
171                html += '<p class="info-ttl">';
172                  html += '<span class="ttl-main">'+ e_title +'</span>';
173                html += '</p>';
174                if( e_period ) {
175                  html += '<dl class="info-term">';
176                    html += '<dt>留学期間</dt>';
177                    html += '<dd>'+ e_period +'</dd>';
178                  html += '</dl>';
179                }
180              html += '</div>';
181            html += '</a>';
182          html += '</li>';
183          
184        }
185
186        html += '</ul>';
187      }
188
189      if(html == '') {
190        html = '<p>絞り込み条件に該当する記事がありませんでした。</p>';
191      }
192
193      $('#pager').empty();
194      $('#pager').append(pagination);
195      $('#archive').empty();
196      $('#archive').append(html);
197    })
198    .fail(function() {
199      var html = '<p>現在、記事はございません。</p>';
200      $('#pager').empty();
201      $('#archive').empty();
202      $('#archive').append(html);
203    });
204  }
205});

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.