imported>실명 |
imported>Hsl0 |
(사용자 3명의 중간 판 3개는 보이지 않습니다) |
1번째 줄: |
1번째 줄: |
| <noinclude>{{관리자 요청 보존|2018|12}}</noinclude>
| | #REDIRECT [[보존:관리자 요청/2018년 12월]] |
| | |
| == 문서 이동 ==
| |
| | |
| [[수도권 전철 1호선 경원경인선]]과 하위 문서들을 <code>수도권 전철 1호선</code>으로 이동해주시기 바랍니다. {{사용자:Kh0505/서명}} 2018년 12월 2일 (일) 12:11 (KST)
| |
| :{{완료}} Js091213님이 처리해주셨습니다. by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2018년 12월 2일 (일) 16:51 (KST)
| |
| | |
| == 문서 이동 ==
| |
| | |
| [[사토:Regurus/연습장/준비물]]과 하위 문서를 [[사:Regurus/월곶광역시 임시]] 의 히위로 이동해 주세요. --{{사용자:Regurus/서명}} 2018년 12월 22일 (토) 08:52 (KST)
| |
| :{{완료}} -- {{사:이의섭/서명}} 2018년 12월 22일 (토) 11:47 (KST)
| |
| | |
| == 반응형 [[틀:알림 상자|알림 상자]] ==
| |
| | |
| [[틀:알림 상자]]를 아래와 같이 수정해 주시고,
| |
| {{복붙 상자|<nowiki>
| |
| {{위백펌}}
| |
| <onlyinclude>{| class="{{#if:{{{폭|}}}||ambox-hybrid}}" style="clear: both; {{#if:{{{폭|}}}|width: {{{폭}}};}} margin: 0 auto; border-collapse: collapse; background: {{{배경색|#fbfbfb}}}; border: {{{경계선|1px solid #aaa}}}; {{#if:{{{오른쪽색|}}}|border-right: 10px solid {{{오른쪽색|#1e90ff}}}; }}border-left: 10px solid {{{색|없음}}};"
| |
| |-
| |
| {{#if:{{{왼쪽 그림|}}}|{{!}}style="width: 52px; padding: 2px 0px 2px 0.5em; text-align: center;"{{!}}{{{왼쪽 그림 예외|[[파일:{{{왼쪽 그림| - }}}|{{{왼쪽 그림 크기|45px}}}|{{{왼쪽 그림 설명|}}}]]}}}}}
| |
| |style="padding: {{{간격|8px}}}; font-size:95%;"|{{#if:{{{제목|}}}|<span style="color:{{{제목색|#000000}}};">'''{{{제목}}}'''</span><br />}}<span style="color:{{{본문색|#000000}}}">{{{본문}}}</span>
| |
| {{#if:{{{오른쪽 그림|}}}|{{!}}style="width: 52px; padding: 2px 4px 2px 0px; text-align: center;"{{!}}{{{오른쪽 그림 예외|[[파일:{{{오른쪽 그림| - }}}|{{{오른쪽 그림 크기|45px}}}|{{{오른쪽 그림 설명|}}}]]}}}}}
| |
| |}</onlyinclude>
| |
| | |
| {| class="wikitable"
| |
| ! 설명 || 사용
| |
| |-
| |
| |
| |
| * 폭 = 데스크톱 70%, 모바일 100% (기본 설정)
| |
| * 색 = 없음이 기본 설정, 입력하면 왼쪽 바에 색이 입혀짐
| |
| * 배경색 = #fbfbfb (기본 설정)
| |
| * 경계선 = 1px solid #aaaaaa (기본 설정)
| |
| * 왼쪽 그림 = 비우면 안 뜸. (그림 파일을 띄울 수도 있습니다.)
| |
| * 왼쪽 그림 크기 = 45px (기본 설정)
| |
| * 왼쪽 그림 설명 = 비우면 안 뜸
| |
| * 왼쪽 그림 예외 = 특수한 경우에 쓰임.
| |
| * 오른쪽 그림 = 없어도 됨
| |
| * 오른쪽 그림 크기 = 45px (기본 설정)
| |
| * 오른쪽 그림 설명 = 비우면 안 뜸
| |
| * 오른쪽 그림 예외 = 특수한 경우에 쓰임.
| |
| * 간격 = 8px (기본 설정)
| |
| * 간격 = 8px (기본 설정)
| |
| * 간격 = 8px (기본 설정)
| |
| * 제목색 = #000000 (기본 설정)
| |
| * 본문색 = #000000 (기본 설정)
| |
| * 제목 =
| |
| * 본문 =
| |
| ||<pre>{{알림 상자
| |
| |폭 =
| |
| |색 =
| |
| |배경색 =
| |
| |경계선 =
| |
| |왼쪽 그림 =
| |
| |왼쪽 그림 크기 =
| |
| |왼쪽 그림 설명 =
| |
| |왼쪽 그림 예외 =
| |
| |오른쪽 그림 =
| |
| |오른쪽 그림 크기 =
| |
| |오른쪽 그림 설명 =
| |
| |오른쪽 그림 예외 =
| |
| |간격 =
| |
| |제목 =
| |
| |본문 =
| |
| }}</pre>
| |
| |}
| |
| | |
| [[분류:머릿글 틀]]
| |
| </nowiki>}}
| |
| | |
| [[미디어위키:Common.css]]에 다음 내용을 추가해 주세요.
| |
| <source lang="css">
| |
| /* 반응형 [[틀:알림 상자]] */
| |
| .ambox-hybrid {
| |
| width: 70%;
| |
| }
| |
| | |
| @media (max-width: 800px) {
| |
| .ambox-hybrid {
| |
| width: 100%;
| |
| }
| |
| }
| |
| </source>
| |
| --{{사용자:Gustmd7410/서명}} 2018년 12월 26일 (수) 16:14 (KST)
| |
| | |
| : {{완료}} 다른 관리자님이 처리해 주셨습니다. — [[사용자토론:유한림|유한림]] 2019년 1월 24일 (목) 17:03 (KST)
| |
| | |
| == 문제 ==
| |
| 관리자 요청에 문제가 있습니다. [[괴:관리자 요청]]에 들어가 보세요. -- {{:사용자:Bd3076/서명}} 2018년 12월 26일 (수) 19:45 (KST)
| |
| :{{완료}} pre의 태그 옵션 사용 관련하여 오류가 있었습니다. 틀 끼워넣기를 하다보니 onlyinclude 태그가 pre 태그를 씹어먹고 작동을 해버렸습니다. 그거 해결했습니다. by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2018년 12월 26일 (수) 22:16 (KST)
| |
| ::감사합니다. -- {{:사용자:Bd3076/서명}} 2018년 12월 26일 (수) 22:16 (KST)
| |
| | |
| == pluginX 업그레이드 - common.js 수정 요청 ==
| |
| | |
| [[미디어위키:Common.js]]의 pluginX 부분을 아래와 같이 수정해 주세요.
| |
| | |
| (편집 창으로 들어오세요.)
| |
| | |
| <!--
| |
| | |
| (이 아래부터 복사해 주세요.)
| |
| | |
| /**
| |
| * pluginX Core
| |
| * pluginX 시스템이 제대로 돌아가게 해 줍니다.
| |
| * 작성자: [[사용자:Bd3076|Bd3076]]
| |
| */
| |
| | |
| function pluginXCore() {
| |
| var api = MediaWikiAPI();
| |
| var ipUser = false;
| |
|
| |
| if(mw.config.get("wgUserName") === null) ipUser = true;
| |
|
| |
| var script_list = [];
| |
| var pluginExist = false;
| |
| var neededPluginExist = false;
| |
| var html_before;
| |
| var jsonDoc = "사용자:" + mw.config.get("wgUserName") + "/pluginX.json";
| |
| var jsonData = JSON.parse(api.getDocument(jsonDoc));
| |
|
| |
| /// 플러그인의 정보가 담긴 데이터를 만듭니다.
| |
| var generateScriptData = function(_url, _name, _creator, _doc, _script, _revid){
| |
| return {
| |
| url: _url,
| |
| name: _name,
| |
| creator: _creator,
| |
| doc: _doc,
| |
| script: _script,
| |
| revid: _revid
| |
| };
| |
| };
| |
|
| |
| /// 플러그인 목록을 만들어서 script_list[]에 담습니다.
| |
| var getPluginList = function(){
| |
| $(".c_pluginX").each(function() {
| |
| pluginExist = true;
| |
| var url = $(this).attr('data-url');
| |
| var name = $(this).attr('data-name');
| |
| var creator = $(this).attr('data-creator');
| |
| var doc = $(this).attr('data-doc');
| |
| var revid = $(this).attr('data-revid');
| |
|
| |
| var script = api.getDocument(doc);
| |
|
| |
| script_list.push(generateScriptData(url, name, creator, doc, script, revid));
| |
|
| |
| if(jsonData[doc] === undefined || jsonData[doc] !== revid){
| |
|
| |
| neededPluginExist = true;
| |
| }
| |
| });
| |
| };
| |
|
| |
| /// 플러그인을 실행합니다.
| |
| var executePlugins = function(){
| |
| document.getElementById('mw-content-text').innerHTML = html_before;
| |
|
| |
| script_list.forEach(function(data){
| |
| var link = data.url;
| |
| var revid = data.revid;
| |
| var doc = data.doc;
| |
|
| |
| if(neededPluginExist){
| |
| jsonData[doc] = revid;
| |
| }
| |
|
| |
| $.getScript(link);
| |
| });
| |
|
| |
| ///자동 인증된 사용자가 플러그인을 실행할 경우 json을 갱신합니다.
| |
| var userGroups = mw.config.get('wgUserGroups');
| |
| var autocheck = 0;
| |
| if (userGroups) {
| |
| for (var i = 0; i < userGroups.length; i++) {
| |
| if (userGroups[i] === 'autoconfirmed') {
| |
| autocheck++;
| |
| }
| |
| }
| |
| }
| |
| if(neededPluginExist && !(autocheck == 0) ){
| |
| api.changeDocument(jsonDoc, "pluginX - 새로운 플러그인", JSON.stringify(jsonData));
| |
| }
| |
| };
| |
|
| |
| /// 플러그인을 실행하지 않습니다.
| |
| var doNotExecutePlugins = function(){
| |
| document.getElementById('mw-content-text').innerHTML = html_before;
| |
| };
| |
|
| |
| /// 알림 창을 만듭니다.
| |
| var showWindow = function(){
| |
| html_before = document.getElementById('mw-content-text').innerHTML;
| |
| $('#mw-content-text').html(api.readDocument("틀:PluginX/setup"));
| |
| var script = "";
| |
|
| |
| script_list.forEach(function(data){
| |
| var addingCode;
| |
| addingCode = '<div class="px-code"><pre>';
| |
| addingCode = addingCode.concat(((data.script.replace('&', '&')).replace('<', '<')).replace('>', '>'));
| |
| addingCode = addingCode.concat('</pre> </div> <div class="px-codeinfo"> <ul> <li> 플러그인 이름: ');
| |
| addingCode = addingCode.concat(data.name);
| |
| addingCode = addingCode.concat('</li> <li> 플러그인 제작자: ');
| |
| addingCode = addingCode.concat(data.creator);
| |
| addingCode = addingCode.concat('</li> </ul> </div>');
| |
|
| |
| // 위험 코드 탐지 시작
| |
| var pattern;
| |
| var nscode = data.script.replace(/\r?\n|\r/g, ' ');
| |
|
| |
| // 패턴 1. document.innerHTML 사용 (위험도: 심각)
| |
| pattern = new RegExp("^.*document *\. *innerHTML.*$");
| |
|
| |
| if(pattern.test(nscode)){
| |
| addingCode = addingCode.concat('<div class="px-critical">이 플러그인은 문서 열람 시 지장을 줄 수 있습니다.<br>플러그인 제작자를 신뢰할 수 있는 경우에만 실행하시기 바랍니다.</div>');
| |
| }
| |
|
| |
| // 패턴 2. document.write 사용 (위험도: 심각)
| |
| pattern = new RegExp("^.*document *\. *write.*$");
| |
|
| |
| if(pattern.test(nscode)){
| |
| addingCode = addingCode.concat('<div class="px-critical">이 플러그인은 문서 내용을 왜곡시킬 수 있습니다.<br>플러그인 제작자를 신뢰할 수 있는 경우에만 실행하시기 바랍니다.</div>');
| |
| }
| |
|
| |
| // 패턴 3. "wgUserName" 사용 (위험도: 안내)
| |
| pattern = new RegExp('^.*"wgUserName".*$');
| |
|
| |
| if(pattern.test(nscode)){
| |
| addingCode = addingCode.concat('<div class="px-notice">이 플러그인은 당신의 사용자 이름을 수집합니다.<br>이를 원치 않으시면 플러그인을 실행하지 마시기 바랍니다.</div>');
| |
| }
| |
|
| |
| //패턴 4. MediaWikiAPI.changeDocument 사용(위험도: 경고)
| |
| pattern = new RegExp('^.*MediaWikiAPI.*changeDocument.*$');
| |
|
| |
| if(pattern.test(nscode)){
| |
| addingCode = addingCode.concat('<div class="px-warning">이 플러그인은 다른 문서를 편집합니다.<br>이 게임이 계정 생성형 게임일 가능성이 높습니다.<br>플러그인 제작자를 신뢰할 수 있는 경우에만 실행하시기 바랍니다.</div>');
| |
| }
| |
|
| |
| script += addingCode;
| |
| });
| |
|
| |
| document.getElementById('px-script').innerHTML = script;
| |
|
| |
| $('#px-button').on('click', executePlugins);
| |
| $('#px-button2').on('click', doNotExecutePlugins);
| |
| };
| |
|
| |
| getPluginList();
| |
|
| |
| if(pluginExist === false) return;
| |
|
| |
| showWindow();
| |
|
| |
| if(neededPluginExist === false){
| |
| executePlugins();
| |
| return;
| |
| }
| |
| }
| |
| $(pluginXCore());
| |
| | |
| /* pluginX Core 끝 */
| |
| | |
| (여기까지 복사해 주세요.)
| |
| | |
| -->
| |
| | |
| 위험한 코드 패턴 몇 가지를 탐지하는 기능을 추가했습니다. -- {{:사용자:Bd3076/서명}} 2018년 12월 31일 (월) 22:35 (KST)
| |
| :{{완료}} by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2018년 12월 31일 (월) 23:42 (KST)
| |