├── .github
└── workflows
│ └── php.yml
├── .gitignore
├── README.md
├── css
├── content
│ ├── board.css
│ ├── board.mobile.css
│ ├── searchall.css
│ ├── user
│ │ ├── message.css
│ │ ├── message.mobile.css
│ │ ├── notification.css
│ │ ├── register.css
│ │ ├── settings.css
│ │ ├── view.css
│ │ └── view.mobile.css
│ └── util
│ │ ├── chat.css
│ │ ├── karaoke.css
│ │ ├── lectureroom.css
│ │ ├── outdoor.css
│ │ └── schedule.css
├── converse
│ ├── converse.css
│ ├── converse.min.css
│ ├── images
│ │ ├── arrow.svg
│ │ ├── bgbl.svg
│ │ ├── bgtr.svg
│ │ ├── bitcoin_qr_code.png
│ │ ├── dark-arrow.svg
│ │ ├── favicon.ico
│ │ ├── header.jpg
│ │ ├── overlay.png
│ │ └── user.png
│ └── theme.css
├── datetimepicker.css
├── font.css
├── fonticons
│ └── fonts
│ │ ├── icomoon.eot
│ │ ├── icomoon.svg
│ │ ├── icomoon.ttf
│ │ └── icomoon.woff
├── fonts
│ ├── register-demibold.eot
│ ├── register-demibold.svg
│ ├── register-demibold.ttf
│ ├── register-demibold.woff
│ ├── register-light.eot
│ ├── register-light.svg
│ ├── register-light.ttf
│ ├── register-light.woff
│ ├── sansation_regular.eot
│ ├── sansation_regular.svg
│ ├── sansation_regular.ttf
│ └── sansation_regular.woff
├── new_screen.css
└── owfont-regular.css
├── favicon.ico
├── fetch_kmla_announcements.php
├── fonts
├── owfont-regular.eot
├── owfont-regular.otf
├── owfont-regular.svg
├── owfont-regular.ttf
└── owfont-regular.woff
├── icon
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── apple-touch-icon.png
├── browserconfig.xml
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon.ico
├── manifest.json
├── mstile-150x150.png
└── safari-pinned-tab.svg
├── images
├── Apply2019.png
├── all_announce.png
├── all_gallery.png
├── all_pds.png
├── bamboozle-bg.png
├── bamboozle.png
├── bg-checker.png
├── big-logo-ad-2.png
├── big-logo-ad-lid.png
├── big-logo-ad-outdoor.png
├── big-logo-ad-outdoor2.png
├── big-logo-chuseok.png
├── big-logo-chuseok2.png
├── big-logo-default2.png
├── big-logo.png
├── big-logo.설말.backup.png
├── big-logo2.png
├── big-new-logo3.png
├── birthday.png
├── bkg.png
├── book-no-img.gif
├── bullet.gif
├── cancelbutton.gif
├── check-penalty-of-council.png
├── close.png
├── dasan-extend.jpg
├── dasan-extend.설날.backup.jpg
├── dasan.backup.png
├── docs.gif
├── food.png
├── forum-2.png
├── kmlacafe.png
├── kmlaonline-p-resize.png
├── kmlaonline-p.png
├── kmlaonline-w.png
├── kmlaonline.png
├── lectureroom.png
├── loading.gif
├── logo-inverse-autumn.png
├── logo-inverse-s.png
├── logo-inverse.png
├── logo-s.png
├── logo.png
├── logo.psd
├── logoCenter.png
├── logoc.gif
├── main_block_main.png
├── menubar-base.backup.png
├── menubar-base.png
├── menubar-hover.backup.png
├── menubar-hover.png
├── menubar-panel.png
├── movie.gif
├── next.png
├── no-book-img.gif
├── no-image.backup.png
├── no-image.png
├── no-profile.png
├── prev.png
├── searchall.png
├── sound.gif
├── speech-bubbles.png
├── unknown.gif
└── upload.gif
├── index.ajax.php
├── index.direct.php
├── index.mobile.php
├── index.php
├── js
├── autobahn.js
├── content
│ ├── admin.js
│ ├── board.js
│ ├── combine.php
│ ├── combined.js
│ ├── main.js
│ ├── user
│ │ ├── login.js
│ │ ├── manage.js
│ │ ├── message.js
│ │ └── settings.js
│ └── util
│ │ ├── barbeque.js
│ │ ├── chat.js
│ │ ├── library.js
│ │ ├── outdoor.js
│ │ ├── schedule.js
│ │ ├── student_guide.js
│ │ └── test-notification.js
├── jquery.ticker.js
├── script.js
└── select.js
├── lang
└── ko-kr.php
├── nginx.conf
├── process.php
├── sass
├── _bootstrap-custom.scss
├── _bootstrap-variables.scss
├── gradients.scss
├── ie.scss
├── print.scss
├── screen.scss
├── square.scss
├── styles.scss
└── test_screen.scss
├── src
├── content
│ ├── 403.php
│ ├── 404.php
│ ├── admin.php
│ ├── aprilfools.php
│ ├── board.php
│ ├── board
│ │ ├── editor.php
│ │ ├── list-all.php
│ │ ├── list-mine.php
│ │ ├── list-multi.php
│ │ ├── list.php
│ │ └── view.php
│ ├── contacts.php
│ ├── main.php
│ ├── modules
│ │ ├── article-list.php
│ │ ├── birthday.php
│ │ ├── court.php
│ │ ├── gallery.php
│ │ ├── library.php
│ │ ├── menu.php
│ │ ├── minjok-news.php
│ │ ├── module.php
│ │ ├── parcel.php
│ │ └── weather.php
│ ├── searchall.php
│ ├── sitemap.php
│ ├── template
│ │ ├── barbeque_home.html
│ │ ├── barbeque_list.html
│ │ ├── barbeque_new.html
│ │ ├── library_my_page.html
│ │ ├── library_search.html
│ │ ├── outdoor.html
│ │ └── outdoor_print.html
│ ├── user.php
│ ├── user
│ │ ├── login.php
│ │ ├── logout.php
│ │ ├── lost.php
│ │ ├── manage.php
│ │ ├── message.php
│ │ ├── notification.php
│ │ ├── register.php
│ │ ├── resetpwd.php
│ │ ├── settings.php
│ │ ├── view.php
│ │ └── welcome.php
│ ├── util.php
│ └── util
│ │ ├── calendar.php
│ │ ├── clear-attachments.php
│ │ ├── create-survey.php
│ │ ├── donation-book.php
│ │ ├── donation-cloth.php
│ │ ├── donation.php
│ │ ├── important.php
│ │ ├── karaoke.php
│ │ ├── kmlaboard.php
│ │ ├── lectureroom.php
│ │ ├── library.php
│ │ ├── outdoor.php
│ │ └── schedule.php
├── header
│ ├── below-header.php
│ ├── menubar.php
│ ├── upper-header.php
│ └── userarea.php
├── lib.php
├── lib
│ ├── OpenWeatherMap.php
│ └── OpenWeatherMap
│ │ ├── AbstractCache.php
│ │ ├── CurrentWeather.php
│ │ ├── Exception.php
│ │ ├── Fetcher
│ │ ├── CurlFetcher.php
│ │ ├── FetcherInterface.php
│ │ └── FileGetContentsFetcher.php
│ │ ├── Forecast.php
│ │ ├── History.php
│ │ ├── Util
│ │ ├── City.php
│ │ ├── Sun.php
│ │ ├── Temperature.php
│ │ ├── Time.php
│ │ ├── Unit.php
│ │ ├── Weather.php
│ │ └── Wind.php
│ │ ├── WeatherForecast.php
│ │ └── WeatherHistory.php
├── process
│ ├── api
│ │ └── food.php
│ ├── board
│ │ ├── delete.php
│ │ ├── downvote.php
│ │ ├── edit.php
│ │ ├── report.php
│ │ ├── reporters.php
│ │ ├── unvote.php
│ │ ├── upload.php
│ │ ├── upvote.php
│ │ └── write.php
│ ├── check
│ │ ├── admin.php
│ │ ├── login.php
│ │ ├── manage.php
│ │ ├── register.php
│ │ └── resetpwd.php
│ ├── file
│ │ ├── attach.php
│ │ ├── attach_zip.php
│ │ └── captcha.php
│ ├── user
│ │ ├── backuplayout.php
│ │ ├── clearmessage.php
│ │ ├── examplelayout.php
│ │ ├── foodvote.php
│ │ ├── getmessage.php
│ │ ├── getmodule.php
│ │ ├── getmoduledefaults.php
│ │ ├── getmodulelite.php
│ │ ├── getnotifications.php
│ │ ├── imlogin.php
│ │ ├── lost.php
│ │ ├── message.php
│ │ ├── nid.php
│ │ ├── register.php
│ │ ├── removemessage.php
│ │ ├── resetlayout.php
│ │ ├── restorelayout.php
│ │ ├── savetheme.php
│ │ ├── search.php
│ │ ├── settings.php
│ │ ├── statusmessage.php
│ │ └── updatelayout.php
│ └── util
│ │ ├── allnotification.php
│ │ ├── barbeque_delete.php
│ │ ├── barbeque_my_list.php
│ │ ├── barbeque_my_list_rep.php
│ │ ├── barbeque_submit_new.php
│ │ ├── barbeque_suggest_student.php
│ │ ├── barbeque_suggest_teacher.php
│ │ ├── create-survey.php
│ │ ├── donation.php
│ │ ├── important.php
│ │ ├── karaoke.php
│ │ ├── kmlaboard.php
│ │ ├── lectureroom.php
│ │ ├── library.php
│ │ ├── library_api.php
│ │ ├── library_delay.php
│ │ ├── library_logged_in.php
│ │ ├── library_login.php
│ │ ├── library_submit_new.php
│ │ ├── outdoor-basic.php
│ │ ├── outdoor-stat.php
│ │ ├── schedule.php
│ │ └── test_notification.php
├── range.php
├── soreeengine
│ ├── SoreeTools.php
│ ├── Soreeboard.php
│ ├── Soreecaptcha.php
│ ├── Soreemember.php
│ └── searchlib.php
└── zipstream.php
├── swfupload
├── plugins
│ ├── swfupload.cookies.js
│ ├── swfupload.queue.js
│ ├── swfupload.speed.js
│ └── swfupload.swfobject.js
├── swfupload.js
├── swfupload.queue.js
└── swfupload.swf
├── teacher
├── hjTool
│ ├── HJBarbeque.php
│ ├── HJTeacher.php
│ ├── HJTools.php
│ └── dbHandler.php
└── lib.php
└── theme
├── dev
└── theme.css
├── mobile
├── birthday.png
├── bkg.png
├── dasan-extend.jpg
├── dasan.jpg
├── dasan.png
├── food.png
├── ic_location_web_site.png
├── kmlacafe.png
├── logo.png
├── logo.psd
├── main_block_main.png
├── menubar-base.png
├── menubar-hover.png
├── menubar-panel.png
├── search-mobile.png
├── section-header.png
├── sitemap-mobile.png
├── sitemap.png
├── theme.css
└── top_bkg.png
└── theme.php
/.github/workflows/php.yml:
--------------------------------------------------------------------------------
1 | name: PHP Composer
2 |
3 | on:
4 | push:
5 | branches: [ "master" ]
6 | pull_request:
7 | branches: [ "master" ]
8 |
9 | permissions:
10 | contents: read
11 |
12 | jobs:
13 | build:
14 |
15 | runs-on: ubuntu-latest
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # data file
2 | data/
3 |
4 | # configuration files
5 | src/db-config.php
6 | teacher/hjTool/config.php
7 | config/
8 |
9 | # i dont know what is this..
10 | /images/gongmo/
11 |
12 | # sass files
13 | .sass-cache
14 | .sass-cache/*
15 | sass-compiled
16 | sass-compiled/*
17 |
18 | # Created by https://www.gitignore.io/api/linux,macos,windows
19 | # Edit at https://www.gitignore.io/?templates=linux,macos,windows
20 |
21 | ### Linux ###
22 | *~
23 |
24 | # temporary files which can be created if a process still has a handle open of a deleted file
25 | .fuse_hidden*
26 |
27 | # KDE directory preferences
28 | .directory
29 |
30 | # Linux trash folder which might appear on any partition or disk
31 | .Trash-*
32 |
33 | # .nfs files are created when an open file is removed but is still being accessed
34 | .nfs*
35 |
36 | ### macOS ###
37 | # General
38 | .DS_Store
39 | .AppleDouble
40 | .LSOverride
41 |
42 | # Icon must end with two \r
43 | Icon
44 |
45 | # Thumbnails
46 | ._*
47 |
48 | # Files that might appear in the root of a volume
49 | .DocumentRevisions-V100
50 | .fseventsd
51 | .Spotlight-V100
52 | .TemporaryItems
53 | .Trashes
54 | .VolumeIcon.icns
55 | .com.apple.timemachine.donotpresent
56 |
57 | # Directories potentially created on remote AFP share
58 | .AppleDB
59 | .AppleDesktop
60 | Network Trash Folder
61 | Temporary Items
62 | .apdisk
63 |
64 | ### Windows ###
65 | # Windows thumbnail cache files
66 | Thumbs.db
67 | Thumbs.db:encryptable
68 | ehthumbs.db
69 | ehthumbs_vista.db
70 |
71 | # Dump file
72 | *.stackdump
73 |
74 | # Folder config file
75 | [Dd]esktop.ini
76 |
77 | # Recycle Bin used on file shares
78 | $RECYCLE.BIN/
79 |
80 | # Windows Installer files
81 | *.cab
82 | *.msi
83 | *.msix
84 | *.msm
85 | *.msp
86 |
87 | # Windows shortcuts
88 | *.lnk
89 |
90 | # End of https://www.gitignore.io/api/linux,macos,windows
91 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # KMLA Online git repository #
2 |
3 | 큼온 git 저장소
4 |
5 | ## Linux 기초 Ref ##
6 |
7 | https://www.linode.com/docs/tools-reference/linux-system-administration-basics
8 |
9 | ## git pull 방법 ##
10 |
11 | ```bash
12 | cd /srv/http/kmla
13 | git pull
14 | ```
15 |
16 | ## 서버 재부팅 후 할 것 정리 ##
17 |
18 | ```bash
19 | cd /srv/http/gems
20 | source ./init
21 | ./watch
22 | ```
23 |
24 | 참 쉽죠?
25 |
26 | (이걸 안하면 .scss 파일이 컴파일 되지 않습니다)
27 |
28 | ## 서버 업데이트 방법 ##
29 |
30 | ```bash
31 | sudo pacman -Syu
32 | ```
33 |
34 | ## ssl 인증서가 만기되었을 때 ##
35 |
36 | (이론적으로 절대로 만기되지 않겠지만)
37 |
38 | ```bash
39 | sudo certbot renew --email kmladotnet@gmail.com --agree-tos
40 | ```
41 |
42 | ## mysql, nginx(/etc/nginx/nginx.conf) 등의 설정을 바꾼 후 ##
43 |
44 | 서비스를 재시작해야지 설정이 적용됩니다
45 |
46 | ```bash
47 | sudo systemctl restart mysqld
48 | sudo systemctl restart nginx
49 | ```
50 |
51 | ## php 설정 (/etc/php/php.ini) 을 변경한 후 ##
52 |
53 | php-fpm, nginx의 서비스를 재시작해야 설정이 적용됩니다.
54 |
55 | ```bash
56 | sudo systemctl restart nginx
57 | sudo systemctl restart php-fpm
58 | ```
59 |
60 | ## archlinux에서 새로운 패키지를 다운로드할 때 ##
61 |
62 | pacman 명령어 사용 하기 - 아래 링크 참조
63 | https://wiki.archlinux.org/index.php/Pacman
64 |
65 | ```bash
66 | sudo pacman -S pkgname
67 | ```
68 |
69 |
70 | ## KMLA Online 멤버 관리 ##
71 |
72 | 자퇴생의 경우 로그인시 대기 알림이 뜨게 함. (/srv/http/kmla/board/user_pending_list 에서 'n_id.txt' 형태의 파일을 만들어 저장.)
73 |
74 | ## 급식 자동화 ##
75 |
76 | 급식 정보는 /scripts/food/data.json에서 가져옵니다. 이 정보는 cron에 의해 열흘에 한 번씩 갱신되며,
77 | data.json 파일은 /scripts/food 디렉토리에 있는 python, java 파일들에 의해 생성됩니다.
78 | 만약 급식이 갱신되지 않아 웹에서 보이지 않는다면 /scripts/food/update.sh 를 실행.
79 | ```bash
80 | /scripts/food/update.sh
81 | ```
82 | cron 수정하기
83 | ```bash
84 | crontab -e
85 | ```
86 | 자세한 정보는 /scripts/food/README.txt 참조!
87 |
88 | ## 기부물품 페이지 ##
89 | 기부물품 자동화 이후 기부물품과 관련된 데이터는 kmlaonline_donation_new 테이블에 저장됩니다.
90 | 페이지는 kmlaonline.net/util/donation-cloth, /util/donation-book 두 개로 나뉘어져 있습니다.
91 | 자동화 관련 파일들은 /scripts/donation/ 디렉토리에 있으며, 기부물품을 /scripts/donation/sample.xlsx에 나와있는 형식 그대로(엄격히!)
92 | 엑셀 파일에 입력해 /scripts/donation/ 디렉토리 안에 넣습니다. 그 뒤 /scripts/donation/insert.py 를 실행하면 데이터베이스에 자동으로 입력이 됩니다.
93 |
94 |
--------------------------------------------------------------------------------
/css/content/searchall.css:
--------------------------------------------------------------------------------
1 | #found_results{
2 | width:100%;
3 | }
4 | #found_results tr{
5 | height:32px;
6 | }
--------------------------------------------------------------------------------
/css/content/user/message.css:
--------------------------------------------------------------------------------
1 | #message_list{
2 | float:left;
3 | width:320px;
4 | background:#EEE;
5 | border-bottom:1px dashed gray;
6 | }
7 | #message_list li{
8 | display:block;
9 | padding:5px;
10 | border-top:1px dashed gray;
11 | cursor:pointer;
12 | }
13 | #message_list li.message_item{
14 | height:74px;
15 | }
16 | #message_list li:hover{
17 | background:White;
18 | }
19 | #message_list li .image{
20 | width:64px;
21 | height:64px;
22 | float:left;
23 | margin-right:5px;
24 | }
25 | #message_list li .writer{
26 | float:left;
27 | font-weight:Bold;
28 | }
29 | #message_list li .when{
30 | float:right;
31 | }
32 | #message_list li .preview{
33 | padding-top:6px;
34 | clear:right
35 | }
36 | #message_list li .actions{
37 | padding-top:6px;
38 | clear:right
39 | }
40 | #message_main{
41 | float:right;
42 | width:775px;
43 | }
44 | .user_list{
45 | width:100%;
46 | }
47 | .user_list li{
48 | display:block;
49 | border-bottom:1px dashed gray;
50 | padding-top:5px;
51 | padding-bottom:5px;
52 | text-align:center;
53 | background:#EEE;
54 | }
55 | .user_list li:hover{
56 | background:white;
57 | }
58 | #id_finder{
59 | clear:both;
60 | }
61 | #id_find_results{
62 | width:100%;
63 | }
64 | #id_find_results li{
65 | display:block;
66 | padding:5px;
67 | vertical-align:middle;
68 | }
69 | .div_message_item{
70 | margin:5px;
71 | padding:5px;
72 | border:1px solid gray;
73 | }
74 | .sender-pic{
75 | display:block;
76 | padding:10px;
77 | float:left;
78 | width:100px;
79 | height:100px;
80 | }
81 | .view_user{
82 | float:left;
83 | font-weight:bold;
84 | }
85 | .view_time{
86 | float:right;
87 | }
88 | .view_data{
89 | padding-top:5px;
90 | clear:right;
91 | display:block;
92 | margin-left:120px;
93 | }
--------------------------------------------------------------------------------
/css/content/user/message.mobile.css:
--------------------------------------------------------------------------------
1 | #message_list{
2 | background:#EEE;
3 | border-bottom:1px dashed gray;
4 | }
5 | #message_list li{
6 | display:block;
7 | padding:5px;
8 | border-top:1px dashed gray;
9 | cursor:pointer;
10 | }
11 | #message_list li.message_item{
12 | height:74px;
13 | }
14 | #message_list li:hover{
15 | background:White;
16 | }
17 | #message_list li .image{
18 | width:64px;
19 | height:64px;
20 | float:left;
21 | margin-right:5px;
22 | }
23 | #message_list li .writer{
24 | float:left;
25 | font-weight:Bold;
26 | }
27 | #message_list li .when{
28 | float:right;
29 | }
30 | #message_list li .preview{
31 | padding-top:6px;
32 | clear:right
33 | }
34 | #message_list li .actions{
35 | padding-top:6px;
36 | clear:right
37 | }
38 | #message_main{
39 | }
40 | .user_list{
41 | width:100%;
42 | }
43 | .user_list li{
44 | display:block;
45 | border-bottom:1px dashed gray;
46 | padding-top:5px;
47 | padding-bottom:5px;
48 | text-align:center;
49 | background:#EEE;
50 | }
51 | .user_list li:hover{
52 | background:white;
53 | }
54 | #id_finder{
55 | clear:both;
56 | }
57 | #id_find_results{
58 | width:100%;
59 | }
60 | #id_find_results li{
61 | display:block;
62 | padding:5px;
63 | vertical-align:middle;
64 | }
65 | .div_message_item{
66 | margin:5px;
67 | padding:5px;
68 | border:1px solid gray;
69 | }
70 | .sender-pic{
71 | display:block;padding:5px;float:left;width:64px;height:64px;
72 | }
73 | .view_user{
74 | float:left;
75 | font-weight:bold;
76 | }
77 | .view_time{
78 | float:right;
79 | }
80 | .view_data{
81 | padding-top:5px;
82 | word-wrap:break-word;
83 | word-break:break-all;
84 | clear:both;
85 | display:block;
86 | }
--------------------------------------------------------------------------------
/css/content/user/notification.css:
--------------------------------------------------------------------------------
1 | .big_notification{
2 | display:block;
3 | width:100%;
4 | border-top:1px solid #EEE;
5 | }
6 | .big_notification li{
7 | display:block;
8 | padding:5px;
9 | border-bottom:1px solid #EEE;
10 | cursor:pointer;
11 | }
12 | .big_notification li.new{
13 | background:#DDF;
14 | }
15 | .big_notification li:hover{
16 | background:#EEF;
17 | }
18 | .big_notification li a{
19 | width:100%;
20 | height:100%;
21 | color:black;
22 | display:block;
23 | }
--------------------------------------------------------------------------------
/css/content/user/register.css:
--------------------------------------------------------------------------------
1 | table.table-register-data tr{
2 | height:42px;
3 | }
4 |
--------------------------------------------------------------------------------
/css/content/user/settings.css:
--------------------------------------------------------------------------------
1 | ul#menusorter{
2 | padding-left:15px;
3 | padding-top:6px;
4 | clear:both;
5 | }
6 | ul#menusorter li{
7 | display:block;
8 | height:36px;
9 | position:relative;
10 | margin:0;padding:0;
11 | border:1px solid gray;
12 | background:white;
13 | }
14 | ul#menusorter li:not(:first-child){
15 | border-top:none;
16 | }
17 | ul#menusorter div.handle{
18 | display:block;
19 | position:absolute;
20 | left:0;top:0;
21 | width:24px;
22 | height:100%;
23 | cursor: grab;
24 | cursor: -moz-grab;
25 | cursor: -webkit-grab;
26 | }
27 | ul#menusorter div.handle:active{
28 | cursor: grabbing;
29 | cursor: -moz-grabbing;
30 | cursor: -webkit-grabbing;
31 | }
32 | ul#menusorter div.remove{
33 | display:block;
34 | position:absolute;
35 | right:0;top:0;
36 | width:24px;
37 | height:100%;
38 | line-height:36px;
39 | text-align:center;
40 | font-size:12pt;
41 | font-weight:bold;
42 | color:red;
43 | cursor: pointer;
44 | }
45 | ul#menusorter div.assigned{
46 | position:absolute;
47 | left:32px;top:0;
48 | right:32px;
49 | height:100%;
50 | }
51 | ul#menusorter div.assigned-2{
52 | position:absolute;
53 | left:64px;top:0;
54 | right:32px;
55 | height:100%;
56 | }
--------------------------------------------------------------------------------
/css/content/user/view.css:
--------------------------------------------------------------------------------
1 | .userinfo_table{
2 | border:2px solid gray !important;
3 | border-bottom:1px solid gray !important;
4 | }
5 | .userinfo_table th,
6 | .userinfo_table td{
7 | padding:5px;
8 | border-bottom:1px solid gray;
9 | }
10 | .userinfo_table th{
11 | width:240px;
12 | text-align:right;
13 | border-right:1px solid gray;
14 | }
15 | .userinfo_table td{
16 | text-align:left;
17 | }
18 | .user_pic{
19 | margin-right:12px;
20 | float:left;
21 | width:100px;
22 | height:100px;
23 | }
24 | .user_action{
25 | float:right;
26 | display:block;
27 | text-align:right;
28 | }
29 | .user_basics{
30 | margin-left:112px;
31 | }
32 | .user_info{
33 | margin-left:112px;
34 | margin-right:12px;
35 | }
36 | .userinfo_table{
37 | width:100%;
38 | box-sizing:border-box;
39 | }
--------------------------------------------------------------------------------
/css/content/user/view.mobile.css:
--------------------------------------------------------------------------------
1 | .userinfo_table{
2 | border:2px solid gray !important;
3 | border-bottom:1px solid gray !important;
4 | }
5 | .userinfo_table th,
6 | .userinfo_table td{
7 | padding:5px;
8 | border-bottom:1px solid gray;
9 | }
10 | .userinfo_table th{
11 | width:240px;
12 | text-align:right;
13 | border-right:1px solid gray;
14 | }
15 | .userinfo_table td{
16 | text-align:left;
17 | }
18 | .user_pic{
19 | float:left;
20 | width:100px;
21 | height:100px;
22 | margin:
23 | }
24 | .user_action{
25 | margin-left:112px;
26 | }
27 | .user_basics{
28 | margin-left:112px;
29 | }
30 | .user_info{
31 | padding-top:12px;
32 | clear:both;
33 | }
34 | .userinfo_table{
35 | width:100%;
36 | box-sizing:border-box;
37 | }
--------------------------------------------------------------------------------
/css/content/util/chat.css:
--------------------------------------------------------------------------------
1 | .hidden {
2 | display: none;
3 | }
4 |
5 | #wrapper {
6 | width: 800px;
7 | margin: 0 auto;
8 | }
9 |
10 | #leave-room {
11 | margin-bottom: 10px;
12 | float: right;
13 | }
14 |
15 | #user-container {
16 | width: 500px;
17 | margin: 0 auto;
18 | text-align: center;
19 | }
20 |
21 | #main-container {
22 | width: 500px;
23 | margin: 0 auto;
24 | }
25 |
26 | #messages {
27 | height: 300px;
28 | width: 500px;
29 | border: 1px solid #ccc;
30 | padding: 20px;
31 | text-align: left;
32 | overflow-y: scroll;
33 | }
34 |
35 | #msg-container {
36 | padding: 20px;
37 | }
38 |
39 | #msg {
40 | width: 400px;
41 | }
42 |
43 | .user {
44 | font-weight: bold;
45 | }
46 |
47 | .msg {
48 | margin-bottom: 10px;
49 | overflow: hidden;
50 | line-height: 1.28;
51 | }
52 |
53 | .time {
54 | float: right;
55 | color: #939393;
56 | font-size: 13px;
57 | }
58 |
59 | .details {
60 | float: left;
61 | max-width: 250px;
62 | padding: 5px 8px 6px;
63 | }
64 |
65 | .text {
66 | display: block;
67 | color: #333;
68 | background: #efdac7;
69 | max-width: 250px;
70 | line-height: 1.5;
71 | word-break: break-word;
72 | padding: 5px 8px 1px;
73 | border-radius: 5%;
74 | }
--------------------------------------------------------------------------------
/css/content/util/karaoke.css:
--------------------------------------------------------------------------------
1 | table#reservation_table {
2 | border-width: 1px;
3 | border-spacing: 2px;
4 | border-style: solid;
5 | border-color: gray;
6 | border-collapse: collapse;
7 | width:100%;
8 | }
9 | table#reservation_table th {
10 | border-width: 1px;
11 | padding: 4px;
12 | border-style: inset;
13 | border-color: gray;
14 | }
15 | table#reservation_table td {
16 | border-width: 1px;
17 | padding: 4px;
18 | border-style: inset;
19 | border-color: gray;
20 | }
--------------------------------------------------------------------------------
/css/content/util/lectureroom.css:
--------------------------------------------------------------------------------
1 | table#reservation_table {
2 | border-width: 1px;
3 | border-spacing: 2px;
4 | border-style: solid;
5 | border-color: gray;
6 | border-collapse: collapse;
7 | width:100%;
8 | }
9 | table#reservation_table th {
10 | border-width: 1px;
11 | padding: 4px;
12 | border-style: inset;
13 | border-color: gray;
14 | }
15 | table#reservation_table td {
16 | border-width: 1px;
17 | padding: 4px;
18 | border-style: inset;
19 | border-color: gray;
20 | }
--------------------------------------------------------------------------------
/css/content/util/outdoor.css:
--------------------------------------------------------------------------------
1 | @charset "utf-8";
2 | @print {
3 | margin-top: 2cm;
4 | margin-left: 1cm;
5 | margin-right: 1cm;
6 | }
7 |
8 | @media print {
9 | body {
10 | margin-top: 2cm;
11 | }
12 | }
13 |
14 | #bootstrap-overrides tbody {
15 | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;
16 | }
17 |
18 | #bootstrap-overrides td.sign {
19 | font-size: 0.8em;
20 | }
21 |
22 | #bootstrap-overrides td.bold {
23 | font-weight: bold !important;
24 | font-size: 1.1em !important;
25 | }
26 |
27 | #bootstrap-overrides td.print {
28 | border-color: black !important;
29 | border-width: 0.5px !important;
30 | }
31 |
32 | #bootstrap-overrides td.important {
33 | border-width: 2px !important;
34 | }
35 |
36 | #boostrap-overrides td.notouch {
37 | font-size: 0.8em !important;
38 | font-weight: bold !important;
39 | text-decoration: underline;
40 | }
41 |
42 | td.hide {
43 | color: white;
44 | }
--------------------------------------------------------------------------------
/css/content/util/schedule.css:
--------------------------------------------------------------------------------
1 | a.nav-year{
2 | display:block;
3 | padding:3px;
4 | color:#555;
5 | background:#DDF;
6 | text-align:center;
7 | }
8 | a.nav-year:hover{
9 | background:white;
10 | color:black;
11 | }
12 | a.nav-month{
13 | display:block;
14 | padding:3px;
15 | color:#555;
16 | background:#EEE;
17 | text-align:center;
18 | }
19 | a.nav-month:hover{
20 | background:white;
21 | color:black;
22 | }
23 | table#calender{
24 | width:100%;
25 | }
26 | table#calender th{
27 | padding:12px;
28 | }
29 | table#calender td{
30 | padding:0;
31 | height:120px;
32 | vertical-align:top;
33 | }
34 | table#calender td span.datename{
35 | font-size:12pt;
36 | font-weight:bold;
37 | float:left;
38 | }
39 | table#calender td a.edit{
40 | float:right;
41 | display:block;
42 | padding:2px;
43 | color:black;
44 | }
45 | table#calender td a.food{
46 | float:right;
47 | display:block;
48 | padding:2px;
49 | color:black;
50 | }
51 | table#calender td div.divider{
52 | height:1px;
53 | display:block;
54 | width:100%;
55 | clear:both;
56 | border-top:1px dashed #EEE;
57 | }
58 | table#calender th,
59 | table#calender td{
60 | width:14.285714285714285714285714285714%;
61 | }
62 |
--------------------------------------------------------------------------------
/css/converse/images/arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/css/converse/images/bgbl.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css/converse/images/bgtr.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css/converse/images/bitcoin_qr_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/converse/images/bitcoin_qr_code.png
--------------------------------------------------------------------------------
/css/converse/images/dark-arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/css/converse/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/converse/images/favicon.ico
--------------------------------------------------------------------------------
/css/converse/images/header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/converse/images/header.jpg
--------------------------------------------------------------------------------
/css/converse/images/overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/converse/images/overlay.png
--------------------------------------------------------------------------------
/css/converse/images/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/converse/images/user.png
--------------------------------------------------------------------------------
/css/datetimepicker.css:
--------------------------------------------------------------------------------
1 | /**
2 | * @license angular-bootstrap-datetimepicker
3 | * Copyright 2016 Knight Rider Consulting, Inc. http://www.knightrider.com
4 | * License: MIT
5 | */
6 | .datetimepicker {
7 | border-radius: 4px;
8 | direction: ltr;
9 | display: block;
10 | margin-top: 1px;
11 | -webkit-user-select: none;
12 | -moz-user-select: none;
13 | -ms-user-select: none;
14 | user-select: none;
15 | width: 320px;
16 | }
17 | .datetimepicker > div {
18 | display: none;
19 | }
20 | .datetimepicker .hour,
21 | .datetimepicker .minute {
22 | height: 34px;
23 | line-height: 34px;
24 | margin: 0;
25 | width: 25%;
26 | }
27 | .datetimepicker .table {
28 | margin: 0;
29 | }
30 | .datetimepicker .table td,
31 | .datetimepicker .table th {
32 | border: 0;
33 | border-radius: 4px;
34 | height: 20px;
35 | text-align: center;
36 | }
37 | .datetimepicker .minute:hover,
38 | .datetimepicker .hour:hover,
39 | .datetimepicker .day:hover,
40 | .datetimepicker .switch:hover,
41 | .datetimepicker .left:hover,
42 | .datetimepicker .right:hover {
43 | background: #eee;
44 | cursor: pointer;
45 | }
46 | .datetimepicker .disabled,
47 | .datetimepicker .disabled:hover {
48 | background: none;
49 | color: #ebebeb;
50 | cursor: default;
51 | }
52 | .datetimepicker .active,
53 | .datetimepicker .active:hover,
54 | .datetimepicker .active.disabled,
55 | .datetimepicker .active.disabled:hover {
56 | background-color: #04c;
57 | background-image: linear-gradient(to bottom, #08c, #04c);
58 | background-repeat: repeat-x;
59 | border-color: #04c #04c #002a80;
60 | color: #fff;
61 | -webkit-filter: progid:dximagetransform.microsoft.gradient(startColorstr='#08c', endColorstr='#04c', GradientType=0);
62 | filter: progid:dximagetransform.microsoft.gradient(startColorstr='#08c', endColorstr='#04c', GradientType=0);
63 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
64 | }
65 | .datetimepicker .current,
66 | .datetimepicker .current:hover,
67 | .datetimepicker .current.disabled,
68 | .datetimepicker .current.disabled:hover {
69 | background-color: #e5e5e5;
70 | }
71 | .datetimepicker .active:hover,
72 | .datetimepicker .active:hover:hover,
73 | .datetimepicker .active.disabled:hover,
74 | .datetimepicker .active.disabled:hover:hover,
75 | .datetimepicker .active:active,
76 | .datetimepicker .active:hover:active,
77 | .datetimepicker .active.disabled:active,
78 | .datetimepicker .active.disabled:hover:active,
79 | .datetimepicker .active.active,
80 | .datetimepicker .active:hover.active,
81 | .datetimepicker .active.disabled.active,
82 | .datetimepicker .active.disabled:hover.active,
83 | .datetimepicker .active.disabled,
84 | .datetimepicker .active:hover.disabled,
85 | .datetimepicker .active.disabled.disabled,
86 | .datetimepicker .active.disabled:hover.disabled,
87 | .datetimepicker td.active[disabled],
88 | .datetimepicker td.active:hover[disabled],
89 | .datetimepicker td.active.disabled[disabled],
90 | .datetimepicker td.active.disabled:hover[disabled],
91 | .datetimepicker span.active[disabled],
92 | .datetimepicker span.active:hover[disabled],
93 | .datetimepicker span.active.disabled[disabled],
94 | .datetimepicker span.active.disabled:hover[disabled] {
95 | background-color: #04c;
96 | }
97 | .datetimepicker span {
98 | border-radius: 4px;
99 | cursor: pointer;
100 | display: block;
101 | float: left;
102 | height: 54px;
103 | line-height: 54px;
104 | margin: 1%;
105 | width: 23%;
106 | }
107 | .datetimepicker span:hover {
108 | background: #eee;
109 | }
110 | .datetimepicker .past,
111 | .datetimepicker .future {
112 | color: #999;
113 | }
114 |
115 | /*# sourceMappingURL=datetimepicker.css.map */
116 |
--------------------------------------------------------------------------------
/css/fonticons/fonts/icomoon.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonticons/fonts/icomoon.eot
--------------------------------------------------------------------------------
/css/fonticons/fonts/icomoon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonticons/fonts/icomoon.ttf
--------------------------------------------------------------------------------
/css/fonticons/fonts/icomoon.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonticons/fonts/icomoon.woff
--------------------------------------------------------------------------------
/css/fonts/register-demibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/register-demibold.eot
--------------------------------------------------------------------------------
/css/fonts/register-demibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/register-demibold.ttf
--------------------------------------------------------------------------------
/css/fonts/register-demibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/register-demibold.woff
--------------------------------------------------------------------------------
/css/fonts/register-light.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/register-light.eot
--------------------------------------------------------------------------------
/css/fonts/register-light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/register-light.ttf
--------------------------------------------------------------------------------
/css/fonts/register-light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/register-light.woff
--------------------------------------------------------------------------------
/css/fonts/sansation_regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/sansation_regular.eot
--------------------------------------------------------------------------------
/css/fonts/sansation_regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/sansation_regular.ttf
--------------------------------------------------------------------------------
/css/fonts/sansation_regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/css/fonts/sansation_regular.woff
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/favicon.ico
--------------------------------------------------------------------------------
/fetch_kmla_announcements.php:
--------------------------------------------------------------------------------
1 | \[([^\]]+):([^\]]+)\](.*?)
/sim', $f, $m, PREG_SET_ORDER)) {
6 | ?>
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
38 |
39 |
40 |
41 |
57 |
68 |
69 |
70 |
71 | ", "", $f);
74 | echo $f;
75 | }
76 |
--------------------------------------------------------------------------------
/fonts/owfont-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/fonts/owfont-regular.eot
--------------------------------------------------------------------------------
/fonts/owfont-regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/fonts/owfont-regular.otf
--------------------------------------------------------------------------------
/fonts/owfont-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/fonts/owfont-regular.ttf
--------------------------------------------------------------------------------
/fonts/owfont-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/fonts/owfont-regular.woff
--------------------------------------------------------------------------------
/icon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/icon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/icon/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/icon/android-chrome-512x512.png
--------------------------------------------------------------------------------
/icon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/icon/apple-touch-icon.png
--------------------------------------------------------------------------------
/icon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #074275
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/icon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/icon/favicon-16x16.png
--------------------------------------------------------------------------------
/icon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/icon/favicon-32x32.png
--------------------------------------------------------------------------------
/icon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/icon/favicon.ico
--------------------------------------------------------------------------------
/icon/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "",
3 | "icons": [
4 | {
5 | "src": "/icon/android-chrome-192x192.png?v=XBrA5kwEdx",
6 | "sizes": "192x192",
7 | "type": "image/png"
8 | },
9 | {
10 | "src": "/icon/android-chrome-512x512.png?v=XBrA5kwEdx",
11 | "sizes": "512x512",
12 | "type": "image/png"
13 | }
14 | ],
15 | "theme_color": "#074275",
16 | "background_color": "#074275",
17 | "display": "standalone"
18 | }
--------------------------------------------------------------------------------
/icon/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/icon/mstile-150x150.png
--------------------------------------------------------------------------------
/images/Apply2019.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/Apply2019.png
--------------------------------------------------------------------------------
/images/all_announce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/all_announce.png
--------------------------------------------------------------------------------
/images/all_gallery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/all_gallery.png
--------------------------------------------------------------------------------
/images/all_pds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/all_pds.png
--------------------------------------------------------------------------------
/images/bamboozle-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/bamboozle-bg.png
--------------------------------------------------------------------------------
/images/bamboozle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/bamboozle.png
--------------------------------------------------------------------------------
/images/bg-checker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/bg-checker.png
--------------------------------------------------------------------------------
/images/big-logo-ad-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo-ad-2.png
--------------------------------------------------------------------------------
/images/big-logo-ad-lid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo-ad-lid.png
--------------------------------------------------------------------------------
/images/big-logo-ad-outdoor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo-ad-outdoor.png
--------------------------------------------------------------------------------
/images/big-logo-ad-outdoor2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo-ad-outdoor2.png
--------------------------------------------------------------------------------
/images/big-logo-chuseok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo-chuseok.png
--------------------------------------------------------------------------------
/images/big-logo-chuseok2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo-chuseok2.png
--------------------------------------------------------------------------------
/images/big-logo-default2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo-default2.png
--------------------------------------------------------------------------------
/images/big-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo.png
--------------------------------------------------------------------------------
/images/big-logo.설말.backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo.설말.backup.png
--------------------------------------------------------------------------------
/images/big-logo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-logo2.png
--------------------------------------------------------------------------------
/images/big-new-logo3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/big-new-logo3.png
--------------------------------------------------------------------------------
/images/birthday.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/birthday.png
--------------------------------------------------------------------------------
/images/bkg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/bkg.png
--------------------------------------------------------------------------------
/images/book-no-img.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/book-no-img.gif
--------------------------------------------------------------------------------
/images/bullet.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/bullet.gif
--------------------------------------------------------------------------------
/images/cancelbutton.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/cancelbutton.gif
--------------------------------------------------------------------------------
/images/check-penalty-of-council.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/check-penalty-of-council.png
--------------------------------------------------------------------------------
/images/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/close.png
--------------------------------------------------------------------------------
/images/dasan-extend.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/dasan-extend.jpg
--------------------------------------------------------------------------------
/images/dasan-extend.설날.backup.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/dasan-extend.설날.backup.jpg
--------------------------------------------------------------------------------
/images/dasan.backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/dasan.backup.png
--------------------------------------------------------------------------------
/images/docs.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/docs.gif
--------------------------------------------------------------------------------
/images/food.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/food.png
--------------------------------------------------------------------------------
/images/forum-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/forum-2.png
--------------------------------------------------------------------------------
/images/kmlacafe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/kmlacafe.png
--------------------------------------------------------------------------------
/images/kmlaonline-p-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/kmlaonline-p-resize.png
--------------------------------------------------------------------------------
/images/kmlaonline-p.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/kmlaonline-p.png
--------------------------------------------------------------------------------
/images/kmlaonline-w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/kmlaonline-w.png
--------------------------------------------------------------------------------
/images/kmlaonline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/kmlaonline.png
--------------------------------------------------------------------------------
/images/lectureroom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/lectureroom.png
--------------------------------------------------------------------------------
/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/loading.gif
--------------------------------------------------------------------------------
/images/logo-inverse-autumn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/logo-inverse-autumn.png
--------------------------------------------------------------------------------
/images/logo-inverse-s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/logo-inverse-s.png
--------------------------------------------------------------------------------
/images/logo-inverse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/logo-inverse.png
--------------------------------------------------------------------------------
/images/logo-s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/logo-s.png
--------------------------------------------------------------------------------
/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/logo.png
--------------------------------------------------------------------------------
/images/logo.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/logo.psd
--------------------------------------------------------------------------------
/images/logoCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/logoCenter.png
--------------------------------------------------------------------------------
/images/logoc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/logoc.gif
--------------------------------------------------------------------------------
/images/main_block_main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/main_block_main.png
--------------------------------------------------------------------------------
/images/menubar-base.backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/menubar-base.backup.png
--------------------------------------------------------------------------------
/images/menubar-base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/menubar-base.png
--------------------------------------------------------------------------------
/images/menubar-hover.backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/menubar-hover.backup.png
--------------------------------------------------------------------------------
/images/menubar-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/menubar-hover.png
--------------------------------------------------------------------------------
/images/menubar-panel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/menubar-panel.png
--------------------------------------------------------------------------------
/images/movie.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/movie.gif
--------------------------------------------------------------------------------
/images/next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/next.png
--------------------------------------------------------------------------------
/images/no-book-img.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/no-book-img.gif
--------------------------------------------------------------------------------
/images/no-image.backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/no-image.backup.png
--------------------------------------------------------------------------------
/images/no-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/no-image.png
--------------------------------------------------------------------------------
/images/no-profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/no-profile.png
--------------------------------------------------------------------------------
/images/prev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/prev.png
--------------------------------------------------------------------------------
/images/searchall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/searchall.png
--------------------------------------------------------------------------------
/images/sound.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/sound.gif
--------------------------------------------------------------------------------
/images/speech-bubbles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/speech-bubbles.png
--------------------------------------------------------------------------------
/images/unknown.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/unknown.gif
--------------------------------------------------------------------------------
/images/upload.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmladotnet/kmlaonline/92c6afcc877d3209d2ab422056cb496dbc1ef9cd/images/upload.gif
--------------------------------------------------------------------------------
/index.ajax.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ";
8 | if (isset($includes)) {
9 | foreach ($includes as $val) {
10 | if (substr($val, -4, 4) == ".css") echo "";
11 | }
12 | }
13 | ?>
14 |
22 |
23 |
25 |
27 |
35 |
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 | =8){
3 | alert("항목을 9개 이상 추가할 수 없습니다.");
4 | return true;
5 | }
6 | return false;
7 | }
8 | function settings_menu_addCategory(title){
9 | if(settings_menu_checkItemCount()) return;
10 | if($("#menusorter").find(".assigned").length>4)return alert("분류를 5개 이상 추가할 수 없습니다.");
11 | if(!title)title="분류 이름";
12 | var li=$($("#menuCategoryForm").html().replaceAll("<%MENUNAME%>",htmlspecialchars(title)));
13 | li.fadeTo(0,0);
14 | li.fadeTo(800,1);
15 | $("#menusorter").append(li);
16 | scrollToMiddle(li.offset().top);
17 | flashObject(li,true);
18 | li.css("display","");
19 | }
20 | function settings_menu_addSubItemWithValue(href,title){
21 | if(settings_menu_checkItemCount()) return;
22 | if($("#menusorter").find(".assigned").length>7)return alert("하위 항목을 7개 이상 추가할 수 없습니다.");
23 | var li=$($("#menuItemForm").html().replaceAll("<%MENUNAME%>",htmlspecialchars(title)).replace("<%MENUACTION%>",htmlspecialchars(href)));
24 | li.fadeTo(0,0);
25 | li.fadeTo(800,1);
26 | $("#menusorter").append(li);
27 | scrollToMiddle(li.offset().top);
28 | flashObject(li,true);
29 | li.css("display","");
30 | }
31 | function settings_menu_addSubItem(){
32 | if(settings_menu_checkItemCount()) return;
33 | if($("#menusorter").find(".assigned").length>7)return alert("하위 항목을 7개 이상 추가할 수 없습니다.");
34 | $("#compactLinkSelector").css("display","block");
35 | $.ajax({
36 | type: "GET",
37 | url: "/sitemap?linkSelector",
38 | headers: { "x-content-only": "true" }
39 | }).done(function(msg) {
40 | var p=$("#compactLinkSelector");
41 | p.empty();
42 | var obj=$(msg).find("div#total-content");
43 | obj.find('a').each(function(){
44 | if(this.onclick || $(this).is('.clickbound') || this.href=="") return;
45 | $(this).off("click");
46 | $(this).click(function(){
47 | if(this.rel=="closenow"){
48 | settings_menu_addSubItemWithValue("url:"+this.href,$(this).text());
49 | return false;
50 | }
51 | });
52 | });
53 | obj.fadeTo(0,0);
54 | p.append(obj);
55 | obj.fadeTo(1000,1);
56 | }).fail(function(jqXHR, textStatus) {
57 | //alert( "페이지를 불러 오는 데 실패하였습니다" );
58 | });
59 | }
60 | function settings_menu_removeSelf(t){
61 | if(confirm("정말로 이 항목을 제거하시겠습니까?"))
62 | $(t).parent().remove();
63 | }
64 | function settings_menu_reload(lst,lst2){
65 | $("#menusorter").children().remove();
66 | for(var i=0;i 0) {
20 | d = f.children("li:first").height();
21 | }
22 | f.animate({
23 | top: "-=" + d + "px"
24 | },
25 | e.speed,
26 | function () {
27 | a(this).children("li:first").remove();
28 | a(this).css("top", "0px");
29 | });
30 | h.appendTo(f);
31 | };
32 | moveDown = function (g, d, e) {
33 | if (e.isPaused)
34 | return;
35 | var f = g.children("ul"),
36 | h = f.children("li:last").clone(true);
37 | if (e.height > 0) d = f.children("li:first").height();
38 | f.css("top", "-" + d + "px").prepend(h);
39 | f.animate({
40 | top: 0
41 | },
42 | e.speed,
43 | function () {
44 | a(this).children("li:last").remove();
45 | });
46 | };
47 | return this.each(function () {
48 | var f = a(this),
49 | e = 0;
50 | f.css({
51 | overflow: "hidden",
52 | }).children("ul").css({
53 | position: "absolute",
54 | margin: 0,
55 | padding: 0
56 | }).children("li").css({
57 | margin: 0
58 | });
59 | if (b.height == 0) {
60 | f.children("ul").children("li").each(function () {
61 | if (a(this).height() > e) {
62 | e = a(this).height();
63 | }
64 | });
65 | f.children("ul").children("li").each(function () {
66 | a(this).height(e);
67 | });
68 | f.height(e * b.showItems);
69 | } else {
70 | f.height(b.height);
71 | }
72 | var d = setInterval(function () {
73 | moveUp(f, e, b);
74 | },
75 | b.pause);
76 | if (b.mousePause) {
77 | f.bind("mouseenter", function () {
78 | b.isPaused = true;
79 | }).bind("mouseleave", function () {
80 | b.isPaused = false;
81 | });
82 | }
83 | });
84 | };
85 | }(jQuery));
86 |
--------------------------------------------------------------------------------
/nginx.conf:
--------------------------------------------------------------------------------
1 | error_page 404 /index.php?action=404;
2 | error_page 403 /index.php?action=403;
3 |
4 | location = /check {
5 | rewrite ^(.*)$ /process.php?actiontype=check last;
6 | }
7 | location /util {
8 | rewrite ^/util/([a-z0-9-_]+)$ /index.php?action=util&sub=$1 last;
9 | }
10 | location /user {
11 | rewrite ^/user/([A-Za-z0-9_]+)$ /index.php?action=user&sub=$1 last;
12 | rewrite ^/user/([A-Za-z0-9_]+)/([A-Za-z0-9_]+)$ /index.php?action=user&sub=$1&p1=$2 last;
13 | rewrite ^/user/([A-Za-z0-9_]+)/([A-Za-z0-9_]+)/([A-Za-z@._0-9]+)$ /index.php?action=user&sub=$1&p1=$2&p2=$3 last;
14 | }
15 | location /teacher/proc {
16 | rewrite ^/teacher/proc/([A-Za-z0-9_\-]+)$ /process.php?isteacher=yes&action=teacher&actiontype=$1 last;
17 | }
18 | location /teacher {
19 | rewrite ^/teacher/([A-Za-z0-9_]+)$ /index.php?action=teacher&action_type=$1 last;
20 | }
21 | location /searchall {
22 | rewrite ^/searchall/([0-9]+)$ /index.php?action=searchall&page=$1 last;
23 | }
24 | location = /searchall {
25 | rewrite ^(.*)$ /index.php?action=searchall last;
26 | }
27 | location /board {
28 | rewrite ^/board/([^/]*)$ /index.php?action=board&bid=$1&bact=list last;
29 | rewrite ^/board/(.*?)/page/([0-9]+)$ /index.php?action=board&bid=$1&bact=list&page=$2 last;
30 | rewrite ^/board/([A-Za-z0-9@:_\-]+)/([A-Za-z0-9_\-]+)$ /index.php?action=board&bid=$1&bact=$2 last;
31 | rewrite ^/board/([A-Za-z0-9@:_\-]+)/([A-Za-z0-9_\-]+)/([0-9]+)$ /index.php?action=board&bid=$1&bact=$2&bitm=$3 last;
32 | rewrite ^/board/([A-Za-z0-9@:_\-]+)/([A-Za-z0-9_\-]+)/([0-9]+)/([0-9]+)$ /index.php?action=board&bid=$1&bact=$2&bitm=$3&bcmt=$4 last;
33 | }
34 | location /ajax {
35 | rewrite ^/ajax/([a-z0-9_\-]+)/([a-z0-9_\-]+)$ /process.php?actiontype=$1&action=$2 last;
36 | }
37 | location /proc {
38 | rewrite ^/proc/([a-z0-9_\-]+)/([a-z0-9_\-]+)$ /process.php?actiontype=$1&action=$2 last;
39 | }
40 | location / {
41 | rewrite ^/((sitemap|contacts|admin|schedule|judicial))$ /index.php?action=$1 last;
42 | }
43 | location = /files/captcha/0.png {
44 | rewrite ^(.*)$ /process.php?actiontype=file&action=captcha last;
45 | }
46 | location /files {
47 | rewrite ^/files/captcha/([0-9]+).png$ /process.php?actiontype=file&action=captcha&renew last;
48 | rewrite ^/files/bbs/([0-9]+)/([0-9]+)/([0-9]+)/([a-z0-9_]+)/sizemode_([0-9]+)/([^/]+)$ /process.php?actiontype=file&action=attach&bid=$1&aid=$2&fid=$3&fkey=$4&fname=$6&mode=sizemode_$5 last;
49 | rewrite ^/files/bbs/([0-9]+)/([0-9]+)/([0-9]+)/([a-z0-9_]+)/force/([^/]+)$ /process.php?actiontype=file&action=attach&bid=$1&aid=$2&fid=$3&fkey=$4&fname=$5&mode=force last;
50 | rewrite ^/files/bbs/([0-9]+)/([0-9]+)/([0-9]+)/([a-z0-9_]+)/([^/]+)$ /process.php?actiontype=file&action=attach&bid=$1&aid=$2&fid=$3&fkey=$4&fname=$5&mode=normal last;
51 | rewrite ^/files/bbs/([0-9]+)/([0-9]+)/([^/]+).zip$ /process.php?actiontype=file&action=attach_zip&bid=$1&aid=$2 last;
52 | }
53 | location /api {
54 | rewrite ^/api/(.*)$ /process.php?actiontype=api&action=$1 last;
55 | }
--------------------------------------------------------------------------------
/process.php:
--------------------------------------------------------------------------------
1 |
4 | *
5 | * */
6 |
--------------------------------------------------------------------------------
/sass/print.scss:
--------------------------------------------------------------------------------
1 | /* Welcome to Compass. Use this file to define print styles.
2 | * Import this file using the following HTML or equivalent:
3 | * */
4 |
--------------------------------------------------------------------------------
/sass/square.scss:
--------------------------------------------------------------------------------
1 | * {
2 | border-radius: 0;
3 | }
--------------------------------------------------------------------------------
/sass/styles.scss:
--------------------------------------------------------------------------------
1 | // Import Bootstrap Compass integration
2 | @import "bootstrap-compass";
3 |
4 | // Import Bootstrap for Sass
5 | @import "bootstrap-custom";
6 |
--------------------------------------------------------------------------------
/src/content/403.php:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
7 |
8 |
9 |
10 |
11 |
2 | listMembersBirth(date("n"), date("j")) as $val){
6 | if($val['n_level']>=$minWave){
7 | $births++;
8 | echo "";
9 | echo "";
10 | putUserCard($val);
11 | echo "
";
12 | echo "";
13 | }
14 | }
15 | if($births==0){
16 | echo "생일인 재학생이 없습니다.";
17 | }
18 | ?>
19 |
--------------------------------------------------------------------------------
/src/content/modules/court.php:
--------------------------------------------------------------------------------
1 |
7 | ">
8 | -o" aria-hidden="true">
9 |
10 |
11 |
12 | 이번 법정은
13 |
">
14 |
15 |
16 |
17 |
법정리스트
18 |
19 |
20 |
21 | ?
22 |
23 |
26 | getCategory(false,"all_gallery");
5 | foreach($board->getArticleList(array($cat['n_id'])) as $ar){
6 | foreach($board->getAttachments(false, $ar['n_id']) as $a){
7 | $att[]=$a;
8 | }
9 | }
10 | $width=160;
11 | $i=0;
12 | ?>
13 |
14 |
15 |
16 | =24) break; ?>
17 |
22 |
23 |
24 |
25 |
26 |
29 |
--------------------------------------------------------------------------------
/src/content/modules/library.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/content/modules/minjok-news.php:
--------------------------------------------------------------------------------
1 |
2 | \[([^\]]+):([^\]]+)\](.*?)
/sim', $f, $m, PREG_SET_ORDER)){
5 | $length = count($m);
6 | for ($i = 0; $i < $length - 2; $i++) {
7 | $each = $m[$i];
8 |
9 | $type=trim($each[1]);
10 | $date=trim($each[2]);
11 | $msg=str_replace(' ', '', htmlspecialchars(trim(strip_tags($each[3])), ENT_IGNORE));
12 | echo "
[$date] $type";
13 | ?>
14 |
15 |
16 |
17 |
21 |
22 |
--------------------------------------------------------------------------------
/src/content/modules/parcel.php:
--------------------------------------------------------------------------------
1 |
22 |
23 | ?
24 |
25 |
28 |
6 |
7 |
8 | lastUpdate->setTimeZone($ko_time)->add(DateInterval::createFromDateString('30 minutes'))->format('n월 j일 H시 기준');
10 | ?>
11 |
12 |
13 |
14 |
15 | weather->id);
17 | ?>
18 |
19 |
20 | temperature;
22 | ?>
23 |
24 |
27 |
28 |
5 |
6 |
7 |
사이트맵
8 | array("전체",array()),
12 | "/^club_.*$/"=>array("동아리",array()),
13 | "/^department_.*$/"=>array("부서",array()),
14 | "/^student_.*$/"=>array("교내",array()),
15 | "/^(site_suggestions|login_candidates|login_approved|site_kmlacafe|site_notice)$/"=>array("큼라온라인", array())
16 | );
17 | for($i=intval(date("Y"))-1995;$i>=1;$i--)
18 | $cat["/^wave{$i}_.*$/"]=array("{$i}기 게시판",array());
19 | foreach($board->getCategoryList(0,0) as $val){
20 | if($val['n_id']==1) continue;
21 | if(checkCategoryAccess($val['n_id'], "list")){
22 | $f=false;
23 | foreach($cat as $k=>$v){
24 | if($k==="") continue;
25 | if(preg_match($k, $val['s_id'])){
26 | $f=true;
27 | $cat[$k][1][]=$val;
28 | }
29 | }
30 | if($f===false)
31 | $cat[""][1][]=$val;
32 | }
33 | }
34 | $i=0;
35 | $cat2[]=array();
36 | foreach($cat as $c){
37 | $cat2[$i++]=$c;
38 | }
39 | $j=0;
40 | for($i=0;$i
";
45 | else
46 | echo "";
81 | }
82 | ?>
83 |
84 | 이번 달 마감 선생님
2 |
3 | - 수학과 : OOO tr., ...
4 | - 외국어과 : OOO tr., ...
5 |
--------------------------------------------------------------------------------
/src/content/template/barbeque_list.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | # |
7 | 제목 |
8 | 인원 |
9 | 날짜 |
10 | 담당 교사 |
11 | 행정실 |
12 |
13 |
14 |
15 |
16 | {{$index + 1}} |
17 | {{item.title}} |
18 | {{item.student_list.split("|").length}} |
19 | {{item.date}} |
20 | {{item.teacher_name}} |
21 | {{item.status == 300 ? "(승인)" : "(미승인)"}} |
22 |
23 |
24 |
25 |
26 | 내가 참가할 바베큐 목록{{bbqList.length}}
27 |
28 |
29 |
30 | # |
31 | 제목 |
32 | 인원 |
33 | 날짜 |
34 | 담당 교사 |
35 | 행정실 |
36 |
37 |
38 |
39 |
40 | {{$index + 1}} |
41 | {{bbq.title}} |
42 | {{bbq.student_list.split("|").length}} |
43 | {{bbq.date}} |
44 | {{bbq.teacher_name}} |
45 | {{bbq.status == 300 ? "승인" : "미승인"}} |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/src/content/template/library_my_page.html:
--------------------------------------------------------------------------------
1 |
2 |
12 |
대출 권수: {{output.bookNum}}권
13 |
로그인 에러: {{output.error_desc}}
14 |
15 |
16 |
17 |
18 |
19 |
20 | # |
21 | 도서명 |
22 | 대출일 |
23 | 반납일 |
24 | 상태 |
25 | 대출 연장 |
26 |
27 |
28 |
29 |
30 | {{book.number}} |
31 | |
32 | {{book.borrow_date}} |
33 | {{book.return_date}} |
34 | {{book.status}} |
35 | |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/src/content/template/library_search.html:
--------------------------------------------------------------------------------
1 |
2 |
도서 검색
3 |
9 |
선택한 도서 - 상세 정보
10 |
11 |
도서명: {{removeHTMLTags(selected.book.title)}}
12 |
저자: {{removeHTMLTags(authorRefined(selected.book.author))}}, 출판사: {{removeHTMLTags(selected.book.publisher)}}
13 |
출간연도: {{selected.book.pubdate.substring(0, 4)}}년
14 |
{{isAvailable(selected.book) ? '정가: ' + selected.book.price + '원' : '절판 등의 이유로 도서를 구매할 수 없습니다'}}
15 |
16 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | # |
29 | 도서 이미지 |
30 | 책 정보 |
31 |
32 |
33 |
34 |
35 | {{$index + 1}} |
36 | ![]() |
37 | |
38 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/src/content/user.php:
--------------------------------------------------------------------------------
1 | $v) unset($_SESSION[$k]);
7 | redirectTo((isset($_REQUEST['returnto']) && $_REQUEST['returnto']!="")?$_REQUEST['returnto']:"/");
--------------------------------------------------------------------------------
/src/content/user/notification.php:
--------------------------------------------------------------------------------
1 | getNotices($me['n_id'], 20);
5 | function printContent(){
6 | global $member, $me, $board, $notices;
7 | //, $since_id=-1, $max_id=-1);
8 | ?>
9 |
13 | 알림
14 |
15 | getArticle($aid);
24 | if($a===false){
25 | $member->removeNotice($me['n_id'], $v['s_fnkey']);
26 | $pass=true;
27 | break;
28 | }
29 | $b=$board->getCategory($a['n_cat']);
30 | $bid=$b['s_id'];
31 | $lnk="/board/$bid/view/$aid";
32 | break;
33 | default:
34 | $lnk=$v['s_url'];
35 | }
36 | if($pass) continue;
37 | $lnk=htmlspecialchars($lnk);
38 | if($v['n_seen'])
39 | echo "- ";
40 | else
41 | echo "
- ";
42 | echo "";
43 | echo $v['s_desc'];
44 | echo "
" . changeToReadableTime($v['n_time']) . "";
45 | echo " ";
46 | }
47 | ?>
48 | -
49 |
50 |
51 |
5 |
6 |
KMLA online에 가입하신 것을 환영합니다.
7 |
8 |
9 |
10 |
11 |
로그인하러 가기
12 |
13 | getAttachments() as $a){
15 | unset($k[$a['s_path']]);
16 | }
17 | foreach($k as $fn=>$v){
18 | echo $fn."
";
19 | //unlink($fn);
20 | }
21 | //*/
22 | }
--------------------------------------------------------------------------------
/src/content/util/kmlaboard.php:
--------------------------------------------------------------------------------
1 |
7 | 큼라보드
8 |
9 | 0){
12 | $dat=file_get_contents("data/kmlaboard.txt");
13 | }
14 | if(isUserPermitted($me['n_id'], "kmlaboard_changer")){
15 | ?>
16 |
21 |
22 |
28 |
33 |
34 |
9 |
10 |
도서부 Util {{submenu()}}
11 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/content/util/outdoor.php:
--------------------------------------------------------------------------------
1 |
8 |
9 |
외출 외박 신청서 작성
10 |
11 |
12 |
16 |
작성을 완료하고 수정 모드를 해제하세요. (필수 항목 * 을 모두 체크해야 인쇄할 수 있습니다.)
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/header/below-header.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
36 |
38 |
44 |
46 |
49 |
55 |
56 |
--------------------------------------------------------------------------------
/src/header/upper-header.php:
--------------------------------------------------------------------------------
1 |
2 | 0) { ?>
3 |
10 |
17 |
18 |
--------------------------------------------------------------------------------
/src/header/userarea.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
36 |
47 | seconds = $seconds;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/Exception.php:
--------------------------------------------------------------------------------
1 | curlOptions = $curlOptions;
41 | }
42 |
43 | /**
44 | * {@inheritdoc}
45 | */
46 | public function fetch($url)
47 | {
48 | $ch = curl_init($url);
49 | curl_setopt($ch, CURLOPT_URL, $url);
50 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
51 | curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
52 | curl_setopt_array($ch, $this->curlOptions);
53 |
54 | $content = curl_exec($ch);
55 | curl_close($ch);
56 |
57 | return $content;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/Fetcher/FetcherInterface.php:
--------------------------------------------------------------------------------
1 | city = new City($xml->city['id'], $xml->city['name'], $xml->city->coord['lon'], $xml->city->coord['lat'], $xml->city->country);
50 |
51 | if ($units == 'metric') {
52 | $temperatureUnit = "°C";
53 | } else {
54 | $temperatureUnit = 'F';
55 | }
56 |
57 | $xml->temperature['value'] = ($xml->temperature['max'] + $xml->temperature['min']) / 2;
58 |
59 | $this->temperature = new Temperature(new Unit($xml->temperature['value'], $temperatureUnit), new Unit($xml->temperature['min'], $temperatureUnit), new Unit($xml->temperature['max'], $temperatureUnit), new Unit($xml->temperature['day'], $temperatureUnit), new Unit($xml->temperature['morn'], $temperatureUnit), new Unit($xml->temperature['eve'], $temperatureUnit), new Unit($xml->temperature['night'], $temperatureUnit));
60 | $this->humidity = new Unit($xml->humidity['value'], $xml->humidity['unit']);
61 | $this->pressure = new Unit($xml->pressure['value'], $xml->pressure['unit']);
62 |
63 | // This is kind of a hack, because the units are missing in the xml document.
64 | if ($units == 'metric') {
65 | $windSpeedUnit = 'm/s';
66 | } else {
67 | $windSpeedUnit = 'mps';
68 | }
69 |
70 | $this->wind = new Wind(new Unit($xml->windSpeed['mps'], $windSpeedUnit, $xml->windSpeed['name']), new Unit($xml->windDirection['value'], $xml->windDirection['code'], $xml->windDirection['name']));
71 | $this->clouds = new Unit($xml->clouds['all'], $xml->clouds['unit'], $xml->clouds['value']);
72 | $this->precipitation = new Unit($xml->precipitation['value'], null, $xml->precipitation['type']);
73 | $this->sun = new Sun(new \DateTime($xml->city->sun['rise']), new \DateTime($xml->city->sun['set']));
74 | $this->weather = new WeatherObj($xml->symbol['number'], $xml->symbol['name'], $xml->symbol['var']);
75 | $this->lastUpdate = new \DateTime($xml->lastupdate['value']);
76 |
77 | if (isset($xml['from'])) {
78 | $this->time = new Time($xml['from'], $xml['to']);
79 | } else {
80 | $this->time = new Time($xml['day']);
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/History.php:
--------------------------------------------------------------------------------
1 | city = $city;
95 | $this->weather = new Weather($weather['id'], $weather['description'], $weather['icon']);
96 | $this->temperature = new Temperature(new Unit($temperature['now'] - 273.15, "\xB0C"), new Unit($temperature['min'] - 273.15, "\xB0C"), new Unit($temperature['max'] - 273.15, "\xB0C"));
97 | $this->pressure = new Unit($pressure, 'kPa');
98 | $this->humidity = new Unit($humidity, '%');
99 | $this->clouds = new Unit($clouds, '%');
100 | $this->precipitation = new Unit($rain['val'], $rain['unit']);
101 | $this->wind = new Wind(new Unit($wind['speed']), new Unit($wind['deg']));
102 | $this->time = $time;
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/Util/City.php:
--------------------------------------------------------------------------------
1 | id = (int)$id;
70 | $this->name = isset($name) ? (string)$name : null;
71 | $this->lon = isset($lon) ? (float)$lon : null;
72 | $this->lat = isset($lat) ? (float)$lat : null;
73 | $this->country = isset($country) ? (string)$country : null;
74 | $this->population = isset($population) ? (int)$population : null;
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/Util/Sun.php:
--------------------------------------------------------------------------------
1 | rise = $rise;
50 | $this->set = $set;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/Util/Time.php:
--------------------------------------------------------------------------------
1 | format('Y-m-d'));
54 | } else {
55 | $from = ($from instanceof \DateTime) ? $from : new \DateTime((string)$from);
56 | $day = clone $from;
57 | $to = clone $from;
58 | $to = $to->add(new \DateInterval('PT23H59M59S'));
59 | }
60 |
61 | $this->from = $from;
62 | $this->to = $to;
63 | $this->day = $day;
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/Util/Unit.php:
--------------------------------------------------------------------------------
1 | value = (float)$value;
58 | $this->unit = (string)$unit;
59 | $this->description = (string)$description;
60 | }
61 |
62 | /**
63 | * Get the value as formatted string with unit.
64 | *
65 | * @return string The value as formatted string with unit.
66 | *
67 | * The unit is not included if it is empty.
68 | */
69 | public function __toString()
70 | {
71 | return $this->getFormatted();
72 | }
73 |
74 | /**
75 | * Get the value's unit.
76 | *
77 | * @return string The value's unit.
78 | *
79 | * This also converts 'celsius' to '°C' and 'fahrenheit' to 'F'.
80 | */
81 | public function getUnit()
82 | {
83 | // Units are inconsistent. Only celsius and fahrenheit are not abbreviated. This check fixes that.
84 | // Also, the API started to return "metric" as temperature unit recently. Also fix that.
85 | if ($this->unit == 'celsius' || $this->unit == 'metric') {
86 | return "°C";
87 | } elseif ($this->unit == 'fahrenheit') {
88 | return 'F';
89 | } else {
90 | return $this->unit;
91 | }
92 | }
93 |
94 | /**
95 | * Get the value.
96 | *
97 | * @return float The value.
98 | */
99 | public function getValue()
100 | {
101 | return $this->value;
102 | }
103 |
104 | /**
105 | * Get the value's description.
106 | *
107 | * @return string The value's description.
108 | */
109 | public function getDescription()
110 | {
111 | return $this->description;
112 | }
113 |
114 | /**
115 | * Get the value as formatted string with unit.
116 | *
117 | * @return string The value as formatted string with unit.
118 | *
119 | * The unit is not included if it is empty.
120 | */
121 | public function getFormatted()
122 | {
123 | if ($this->getUnit() != "") {
124 | return $this->getValue() . " " . $this->getUnit();
125 | } else {
126 | return (string)$this->getValue();
127 | }
128 | }
129 | }
130 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/Util/Weather.php:
--------------------------------------------------------------------------------
1 | id = (int)$id;
59 | $this->description = (string)$description;
60 | $this->icon = (string)$icon;
61 | }
62 |
63 | /**
64 | * Get the weather description.
65 | *
66 | * @return string
67 | */
68 | public function __toString()
69 | {
70 | return $this->description;
71 | }
72 |
73 | /**
74 | * Get the icon url.
75 | *
76 | * @return string The icon url.
77 | */
78 | public function getIconUrl()
79 | {
80 | return str_replace("%s", $this->icon, $this->iconUrl);
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/Util/Wind.php:
--------------------------------------------------------------------------------
1 | speed = $speed;
46 | $this->direction = $direction;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/WeatherForecast.php:
--------------------------------------------------------------------------------
1 | getWeather().
26 | *
27 | * @see Cmfcmf\OpenWeatherMap::getWeather() The function using it.
28 | */
29 | class WeatherForecast implements \Iterator
30 | {
31 | /**
32 | * A city object.
33 | *
34 | * @var Util\City
35 | */
36 | public $city;
37 |
38 | /**
39 | * A sun object
40 | *
41 | * @var Util\Sun
42 | */
43 | public $sun;
44 |
45 | /**
46 | * The time of the last update of this weather data.
47 | *
48 | * @var \DateTime
49 | */
50 | public $lastUpdate;
51 |
52 | /**
53 | * An array of {@link Forecast} objects.
54 | *
55 | * @var Forecast[]
56 | *
57 | * @see Forecast The Forecast class.
58 | */
59 | private $forecasts;
60 |
61 | /**
62 | * @internal
63 | */
64 | private $position = 0;
65 |
66 | /**
67 | * Create a new Forecast object.
68 | *
69 | * @param $xml
70 | * @param string $units
71 | * @param int $days How many days of forecast to receive.
72 | *
73 | * @internal
74 | */
75 | public function __construct($xml, $units, $days)
76 | {
77 | $this->city = new City(-1, $xml->location->name, $xml->location->location['longitude'], $xml->location->location['latitude'], $xml->location->country);
78 | $this->sun = new Sun(new \DateTime($xml->sun['rise']), new \DateTime($xml->sun['set']));
79 | $this->lastUpdate = new \DateTime($xml->meta->lastupdate);
80 |
81 | $counter = 0;
82 | foreach ($xml->forecast->time as $time) {
83 | $forecast = new Forecast($time, $units);
84 | $forecast->city = $this->city;
85 | $this->forecasts[] = $forecast;
86 |
87 | $counter++;
88 | // Make sure to only return the requested number of days.
89 | if ($days <= 5 && $counter == $days * 8) {
90 | break;
91 | } elseif ($days > 5 && $counter == $days) {
92 | break;
93 | }
94 | }
95 | }
96 |
97 | /**
98 | * @internal
99 | */
100 | public function rewind()
101 | {
102 | $this->position = 0;
103 | }
104 |
105 | /**
106 | * @internal
107 | */
108 | public function current()
109 | {
110 | return $this->forecasts[$this->position];
111 | }
112 |
113 | /**
114 | * @internal
115 | */
116 | public function key()
117 | {
118 | return $this->position;
119 | }
120 |
121 | /**
122 | * @internal
123 | */
124 | public function next()
125 | {
126 | ++$this->position;
127 | }
128 |
129 | /**
130 | * @internal
131 | */
132 | public function valid()
133 | {
134 | return isset($this->forecasts[$this->position]);
135 | }
136 | }
137 |
--------------------------------------------------------------------------------
/src/lib/OpenWeatherMap/WeatherHistory.php:
--------------------------------------------------------------------------------
1 | city = new OpenWeatherMap\Util\City($weatherHistory['city_id'], (is_string($query)) ? $query : null, (isset($query['lon'])) ? $query['lon'] : null, (isset($query['lat'])) ? $query['lat'] : null, $country, $population);
66 | $this->calctime = $weatherHistory['calctime'];
67 |
68 | foreach ($weatherHistory['list'] as $history) {
69 | if (isset($history['rain'])) {
70 | $units = array_keys($history['rain']);
71 | } else {
72 | $units = array(0 => null);
73 | }
74 |
75 | $this->histories[] = new History($this->city, $history['weather'][0], array('now' => $history['main']['temp'], 'min' => $history['main']['temp_min'], 'max' => $history['main']['temp_max']), $history['main']['pressure'], $history['main']['humidity'], $history['clouds']['all'], isset($history['rain']) ? array('val' => $history['rain'][($units[0])], 'unit' => $units[0]) : null, $history['wind'], \DateTime::createFromFormat('U', $history['dt']));
76 | }
77 | }
78 |
79 | /**
80 | * @internal
81 | */
82 | public function rewind()
83 | {
84 | $this->position = 0;
85 | }
86 |
87 | /**
88 | * @internal
89 | */
90 | public function current()
91 | {
92 | return $this->histories[$this->position];
93 | }
94 |
95 | /**
96 | * @internal
97 | */
98 | public function key()
99 | {
100 | return $this->position;
101 | }
102 |
103 | /**
104 | * @internal
105 | */
106 | public function next()
107 | {
108 | ++$this->position;
109 | }
110 |
111 | /**
112 | * @internal
113 | */
114 | public function valid()
115 | {
116 | return isset($this->histories[$this->position]);
117 | }
118 | }
119 |
--------------------------------------------------------------------------------
/src/process/api/food.php:
--------------------------------------------------------------------------------
1 | = 22) $foodTime = 'breakfast';
14 | elseif($h >= 8 && $h < 13) $foodTime = 'lunch';
15 | else $foodTime = 'dinner';
16 | if($h >= 22) {
17 | $y = date('Y', $t + 60 * 60 * 24);
18 | $m = date('n', $t + 60 * 60 * 24);
19 | $d = date('j', $t + 60 * 60 * 24);
20 | }
21 | }
22 |
23 | $query = "SELECT s_mode, s_data FROM kmlaonline_schedule_table WHERE n_year=$y AND n_month=$m AND n_day=$d";
24 | $foodData = array();
25 | $foodData['year'] = $y;
26 | $foodData['month'] = $m;
27 | $foodData['date'] = $d;
28 | if(isset($foodTime)) {
29 | $foodData['food'] = $foodTime;
30 | }
31 | if($res = $mysqli->query($query)){
32 | while ($row = $res->fetch_array(MYSQLI_ASSOC)) {
33 | if(substr($row['s_mode'], 0, 4) === 'food') {
34 | $foodTime = 'error';
35 | switch(substr($row['s_mode'], 5)) {
36 | case 0: $foodTime = 'breakfast';
37 | break;
38 | case 1: $foodTime = 'lunch';
39 | break;
40 | case 2: $foodTime = 'dinner';
41 | break;
42 | }
43 | $foodData[$foodTime] = $row['s_data'];
44 | }
45 | }
46 | $res->close();
47 | if($mysqli->more_results()) $mysqli->next_result();
48 | }
49 | echo json_encode($foodData);
50 |
--------------------------------------------------------------------------------
/src/process/board/delete.php:
--------------------------------------------------------------------------------
1 |
6 |
23 |
24 | getArticle($_POST['n_id']);
30 | if($article==false)
31 | $errors["n_id"]=lang("board","article","nonexist");
32 | else if(($article["n_writer"]!=$me['n_id']) && !checkCategoryAccess($article['n_cat'], "manage modify"))
33 | $errors["n_id"]=lang("board","article","notmine");
34 | }
35 | if(count($errors)==0){
36 | $cat=$board->getCategory($article['n_cat']);
37 | if($board->removeArticle($article['n_id'])===false)
38 | ajaxDie(array(), lang("generic","unknown error"));
39 | }
40 | if(count($errors)>0){
41 | if(isAjax()){
42 | ajaxDie($errors);
43 | }else
44 | redirectWith("redirWithBody",$errors);
45 | }else{
46 | if($article['n_parent']){
47 | $top=$article;
48 | while($top['n_parent']){ $top=$board->getArticle($top['n_parent']); }
49 | $new_location="/board/{$cat['s_id']}/view/{$top['n_id']}";
50 | }else
51 | $new_location="/board/{$cat['s_id']}";
52 | if(isAjax()){
53 | ajaxOk(array(), $new_location);
54 | }else{
55 | redirectTo($new_location);
56 | }
57 | }
--------------------------------------------------------------------------------
/src/process/board/downvote.php:
--------------------------------------------------------------------------------
1 | "파일 크기가 너무 큽니다.")));
5 | $file_path="data/temp/";
6 | @$mkdir = mkdir($file_path,0777,true);
7 | $file_real_name=sanitizeFileName(@end(explode('/', $_FILES['Filedata']['name'])));
8 | $fn=uniqid("up_",true);
9 | $rfile=$file_path.$fn;
10 | //debug
11 | $debug = print_r($_FILES, true);
12 | $debug_error = print_r($_FILES['Filedata']['error'], true);
13 | //debug
14 | if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $rfile) === false){
15 | die(json_encode(array("error"=>"알 수 없는 오류가 발생하였습니다.", "debug_rfile"=>$rfile, "ini_get"=>ini_get('upload_tmp_dir'), "debug_tmp_name"=>$_FILES['Filedata']['tmp_name'], "debug_file"=>$debug, "mkdir"=>$mkdir)));
16 | }else
17 | echo json_encode(array(
18 | "error"=>0,
19 | "filename"=>"/".$file_path.rawurlencode($fn),
20 | "disp_filename"=>$file_real_name
21 | ));
22 | if ($dh = opendir($file_path)) {
23 | while (($file = readdir($dh)) !== false) {
24 | if(str_replace(".","",$file)=="") continue;
25 | if(filemtime($file_path . $file)+86400