Procházet zdrojové kódy

add skin user head

잉여개발기 (SPDV) před 3 roky
rodič
revize
8fab2e75a1

+ 3 - 1
app.py

@@ -486,7 +486,9 @@ app.route('/change', methods = ['POST', 'GET'])(user_setting)
 app.route('/change/key')(user_setting_key)
 app.route('/change/key/delete')(user_setting_key_delete)
 app.route('/change/pw', methods = ['POST', 'GET'])(user_setting_pw)
-app.route('/change/head', methods=['GET', 'POST'])(user_setting_head)
+app.route('/change/head', methods=['GET', 'POST'], defaults = { 'skin_name' : '' })(user_setting_head)
+app.route('/change/head/<skin_name>', methods=['GET', 'POST'])(user_setting_head)
+app.route('/change/head_reset', methods=['GET', 'POST'])(user_setting_head_reset)
 app.route('/change/skin_set')(user_setting_skin_set)
 app.route('/change/skin_set/main')(user_setting_skin_set)
 

+ 3 - 0
lang/en-US.json

@@ -108,6 +108,7 @@
         "alpha" : "Alpha",
         "beta" : "Beta",
         "example" : "Example",
+        "reset" : "Reset",
         "_comment_1.1_" : "Time",
             "second" : "Second(s)",
             "hour" : "Hour(s)",
@@ -515,6 +516,8 @@
             "no_login_warning" : "You are not logged in. Your current IP address will be logged within editing or discussing until you log in.",
             "update_warning" : "Manual updates are recommended if your version is 0.2 or lower than the latest version. For Windows, the contents of the route folder will be deleted.",
             "history_delete_warning" : "If you erase history, it's hard to restore it, so please be careful.",
+            "user_css_warning" : "If you have a problem using this, connect here.",
+            "main_css_warning" : "If you have a problem using this, use the emergency tool.",
         "_comment_" : "Challenge",
             "challenge_title_register" : "Hello, World!",
             "challenge_info_register" : "Sign up",

+ 20 - 16
lang/ko-KR.json

@@ -468,20 +468,24 @@
     "document_edit_acl": "문서 편집 ACL",
     "phrase_old_page_warring": "이전 리비전 문서 방문시 경고문",
     "toc": "목차",
-    "topic_view_acl" : "토론 보기 ACL",
-    "file_delete" : "파일 삭제",
-    "topic_change_agree" : "합의가 완료된 토론으로 전환",
-    "topic_progress" : "토론 진행",
-    "topic_associate" : "다른 기능과 토론 연계",
-    "topic_link_vote" : "토론과 투표 연계",
-    "topic_insert_vote_number" : "투표의 번호",
-    "topic_state_change_normal" : "관리자가 토론을 정상화 했습니다.",
-    "topic_state_change_stop" : "관리자가 토론을 중지 했습니다.",
-    "topic_state_change_close" : "관리자가 토론을 닫았습니다.",
-    "topic_state_change_agree" : "관리자가 토론의 합의를 승인했습니다.",
-    "topic_state_change_disagree" : "관리자가 토론의 합의를 파기했습니다.",
-    "topic_normal" : "일반",
-    "topic_stop" : "중지",
-    "topic_close" : "닫힘",
-    "turn_off_monaco" : "모나코 에디터 끄기"
+    "topic_view_acl": "토론 보기 ACL",
+    "file_delete": "파일 삭제",
+    "topic_change_agree": "합의가 완료된 토론으로 전환",
+    "topic_progress": "토론 진행",
+    "topic_associate": "다른 기능과 토론 연계",
+    "topic_link_vote": "토론과 투표 연계",
+    "topic_insert_vote_number": "투표의 번호",
+    "topic_state_change_normal": "관리자가 토론을 정상화 했습니다.",
+    "topic_state_change_stop": "관리자가 토론을 중지 했습니다.",
+    "topic_state_change_close": "관리자가 토론을 닫았습니다.",
+    "topic_state_change_agree": "관리자가 토론의 합의를 승인했습니다.",
+    "topic_state_change_disagree": "관리자가 토론의 합의를 파기했습니다.",
+    "topic_normal": "일반",
+    "topic_stop": "중지",
+    "topic_close": "닫힘",
+    "turn_off_monaco": "모나코 에디터 끄기",
+    "topic_agree": "토론 합의 완료",
+    "user_css_warning": "만약 사용하다가 문제가 생기면 여기로 접속하세요.",
+    "main_css_warning": "만약 사용하다가 문제가 생기면 이머전시 툴을 사용하세요.",
+    "reset" : "초기화"
 }

+ 8 - 3
route/main_func_setting_head.py

@@ -65,10 +65,14 @@ def main_func_setting_head(num, skin_name = ''):
                 curs.execute(db_change("select data from other where name = 'head' and coverage = ?"), [skin_name])
                 title = '_head'
                 start = '' + \
-                    '<a href="?">(' + load_lang('all') + ')</a> ' + \
-                    ' '.join(['<a href="/setting/head/' + i + '">(' + i + ')</a>' for i in load_skin('', 1)]) + '''
+                    '<a href="/setting/head">(' + load_lang('all') + ')</a> ' + \
+                    ' '.join(['<a href="/setting/head/' + url_pas(i) + '">(' + html.escape(i) + ')</a>' for i in load_skin('', 1)]) + '''
                     <hr class="main_hr">
-                    <span>&lt;style&gt;CSS&lt;/style&gt;<br>&lt;script&gt;JS&lt;/script&gt;</span>
+                    <span>
+                        &lt;style&gt;CSS&lt;/style&gt;
+                        <br>
+                        &lt;script&gt;JS&lt;/script&gt;
+                    </span>
                     <hr class="main_hr">
                 '''
                 plus = ''
@@ -91,6 +95,7 @@ def main_func_setting_head(num, skin_name = ''):
                         ''' + start + '''
                         <textarea rows="25" placeholder="''' + load_lang('enter_html') + '''" name="content" id="content">''' + html.escape(data) + '''</textarea>
                         <hr class="main_hr">
+                        ''' + (load_lang('main_css_warning') + '<hr class="main_hr">' if title == '_head' else '') + '''
                         <button id="opennamu_js_save" type="submit">''' + load_lang('save') + '''</button>
                         ''' + plus + '''
                     </form>

+ 20 - 3
route/tool/func.py

@@ -1138,13 +1138,29 @@ def wiki_custom():
     curs = conn.cursor()
 
     ip = ip_check()
+    skin_name = '_' + skin_check(1)
+
     if ip_or_user(ip) == 0:
         user_icon = 1
         user_name = ip
 
-        curs.execute(db_change("select data from user_set where id = ? and name = 'custom_css'"), [ip])
-        user_head = curs.fetchall()
-        user_head = user_head[0][0] if user_head else ''
+        if 'head' in flask.session:
+            user_head = flask.session['head']
+        else:
+            curs.execute(db_change("select data from user_set where id = ? and name = 'custom_css'"), [ip])
+            user_head = curs.fetchall()
+            user_head = user_head[0][0] if user_head else ''
+
+            flask.session['head'] = user_head[0][0]
+
+        if 'head' + skin_name in flask.session:
+            user_head += flask.session['head' + skin_name]
+        else:
+            curs.execute(db_change("select data from user_set where id = ? and name = ?"), [ip, 'custom_css' + skin_name])
+            user_head = curs.fetchall()
+            user_head += user_head[0][0] if user_head else ''
+
+            flask.session['head' + skin_name] = user_head[0][0]
         
         curs.execute(db_change('select data from user_set where name = "email" and id = ?'), [ip])
         email = curs.fetchall()
@@ -1176,6 +1192,7 @@ def wiki_custom():
         user_acl_list = '0'
         user_notice = '0'
         user_head = flask.session['head'] if 'head' in flask.session else ''
+        user_head += flask.session['head' + skin_name] if 'head' + skin_name in flask.session else ''
 
     curs.execute(db_change("select title from rd where title = ? and stop = ''"), ['user:' + ip])
     user_topic = '1' if curs.fetchall() else '0'

+ 31 - 10
route/user_setting_head.py

@@ -1,30 +1,37 @@
 from .tool.func import *
 
-def user_setting_head():
+def user_setting_head(skin_name = ''):
     with get_db_connect() as conn:
         curs = conn.cursor()
 
         ip = ip_check()
+
+        skin_name_org = skin_name
+        if skin_name != '':
+            skin_name = '_' + skin_name
     
         if flask.request.method == 'POST':
             get_data = flask.request.form.get('content', '')
             if ip_or_user(ip) == 0:
-                curs.execute(db_change("select id from user_set where id = ? and name = 'custom_css'"), [ip])
+                curs.execute(db_change("select id from user_set where id = ? and name = ?"), [ip, 'custom_css' + skin_name])
                 if curs.fetchall():
-                    curs.execute(db_change("update user_set set data = ? where id = ? and name = 'custom_css'"), [get_data, ip])
+                    curs.execute(db_change("update user_set set data = ? where id = ? and name = ?"), [get_data, ip, 'custom_css' + skin_name])
                 else:
-                    curs.execute(db_change("insert into user_set (id, name, data) values (?, 'custom_css', ?)"), [ip, get_data])
+                    curs.execute(db_change("insert into user_set (id, name, data) values (?, ?, ?)"), [ip, 'custom_css' + skin_name, get_data])
 
                 conn.commit()
         
-            flask.session['head'] = get_data
+            flask.session['head' + skin_name] = get_data
 
-            return redirect('/change/head')
+            if skin_name_org != '':
+                return redirect('/change/head/' + skin_name_org)
+            else:
+                return redirect('/change/head')
         else:
             if ip_or_user(ip) == 0:
                 start = ''
 
-                curs.execute(db_change("select data from user_set where id = ? and name = 'custom_css'"), [ip])
+                curs.execute(db_change("select data from user_set where id = ? and name = ?"), [ip, 'custom_css' + skin_name])
                 head_data = curs.fetchall()
                 data = head_data[0][0] if head_data else ''
             else:
@@ -32,7 +39,7 @@ def user_setting_head():
                     '<span>' + load_lang('user_head_warning') + '</span>' + \
                     '<hr class="main_hr">' + \
                 ''
-                data = flask.session['head'] if 'head' in flask.session else ''
+                data = flask.session['head' + skin_name] if 'head' + skin_name in flask.session else ''
 
             start += '' + \
                 '<span>' + \
@@ -43,11 +50,25 @@ def user_setting_head():
                 '<hr class="main_hr">' + \
             ''
 
+            if skin_name == '':
+                sub_name = ''
+            else:
+                sub_name = ' (' + skin_name_org + ')'
+
+            start = '' + \
+                '<a href="/change/head">(' + load_lang('all') + ')</a> ' + \
+                ' '.join(['<a href="/change/head/' + url_pas(i) + '">(' + html.escape(i) + ')</a>' for i in load_skin('', 1)]) + \
+                '<hr class="main_hr">' + \
+                start + \
+            ''
+
             return easy_minify(flask.render_template(skin_check(),
-                imp = [load_lang(data = 'user_head', safe = 1), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+                imp = [load_lang(data = 'user_head', safe = 1), wiki_set(), wiki_custom(), wiki_css(['(HTML)' + sub_name, 0])],
                 data = start + '''
                     <form method="post">
-                        <textarea rows="25" cols="100" name="content">''' + data + '''</textarea>
+                        <textarea rows="25" cols="100" name="content">''' + html.escape(data) + '''</textarea>
+                        <hr class="main_hr">
+                        ''' + load_lang('user_css_warning') + ''' : <a href="/change/head_reset">/change/head_reset</a>
                         <hr class="main_hr">
                         <button id="opennamu_js_save" type="submit">''' + load_lang('save') + '''</button>
                     </form>

+ 57 - 0
route/user_setting_head_reset.py

@@ -0,0 +1,57 @@
+from .tool.func import *
+
+def user_setting_head_reset():
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        skin_name = skin_check(1)
+        ip = ip_check()
+
+        if flask.request.method == 'POST':
+            get_data = ''
+            if ip_or_user(ip) == 0:
+                curs.execute(db_change("select id from user_set where id = ? and name = ?"), [ip, 'custom_css'])
+                if curs.fetchall():
+                    curs.execute(db_change("update user_set set data = ? where id = ? and name = ?"), [get_data, ip, 'custom_css'])
+                else:
+                    curs.execute(db_change("insert into user_set (id, name, data) values (?, ?, ?)"), [ip, 'custom_css', get_data])
+
+                curs.execute(db_change("select id from user_set where id = ? and name = ?"), [ip, 'custom_css_' + skin_name])
+                if curs.fetchall():
+                    curs.execute(db_change("update user_set set data = ? where id = ? and name = ?"), [get_data, ip, 'custom_css_' + skin_name])
+                else:
+                    curs.execute(db_change("insert into user_set (id, name, data) values (?, ?, ?)"), [ip, 'custom_css_' + skin_name, get_data])
+
+                conn.commit()
+
+            flask.session['head'] = ''
+            flask.session['head_' + skin_name] = ''
+
+            return redirect('/change/head')
+        else:
+            if ip_or_user(ip) == 0:
+                curs.execute(db_change("select data from user_set where id = ? and name = ?"), [ip, 'custom_css'])
+                head_data = curs.fetchall()
+                data = head_data[0][0] if head_data else ''
+
+                curs.execute(db_change("select data from user_set where id = ? and name = ?"), [ip, 'custom_css_' + skin_name])
+                head_data = curs.fetchall()
+                data_skin = head_data[0][0] if head_data else ''
+            else:
+                data = flask.session['head'] if 'head' in flask.session else ''
+                data_skin = flask.session['head_' + skin_name] if 'head_' + skin_name in flask.session else ''
+            
+            return '''
+                <form method="post">
+                    <style>.main_hr { border: none; }</style>
+                    ''' + load_lang('all') + '''
+                    <hr class="main_hr">
+                    <pre>''' + html.escape(data) + '''</pre>
+                    <hr class="main_hr">
+                    ''' + skin_name + '''
+                    <hr class="main_hr">
+                    <pre>''' + html.escape(data_skin) + '''</pre>
+                    <hr class="main_hr">
+                    <button type="submit">''' + load_lang('reset') + '''</button>
+                </form>
+            '''

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.5 (stable2) (beta3) (dev58)",
+        "r_ver" : "v3.4.5 (stable2) (beta3) (dev59)",
         "c_ver" : "3500354",
         "s_ver" : "3500110"
     }