a14
原点様: 汎用型ページクリエイター - 椎茸天然製造
作者: C-take
ライセンス: CC BY-SA 3.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"/> <meta http-equiv="Content-Style-Type" content="text/css"/> <meta http-equiv="content-language" content="ja,jp-ja"/> <meta charset="UTF-8"/> <title>ページクリエイター</title> <style type="text/css"> @import url(http://scp-jp.wdfiles.com/local--files/japanese-syntax/scp-WikidotCss.css); </style> <script type="text/javascript" src="http://ja.scp-wiki.net/scpmetatitlesearch/code/1"></script> <script type="text/javascript" src="http://ja.scp-wiki.net/scpmetatitlesearch/code/4"></script> <script type="text/javascript"> document.addEventListener("DOMContentLoaded",function(){ var paramNameEntity = { pagename:"pagename", category:"category", parent:"parent", tags:"tags", tagSelect:"tagselect", forcetag:"forcetag", pagetitle:"pagetitle", createButton:"createButton" } var displayParamTitle = new Object(); displayParamTitle[paramNameEntity.category] = "カテゴリー"; displayParamTitle[paramNameEntity.pagename] = "URL"; displayParamTitle[paramNameEntity.pagetitle] = "タイトル"; displayParamTitle[paramNameEntity.tags] = "tagsSet"; displayParamTitle[paramNameEntity.tagSelect] = "タグ選択: "; displayParamTitle[paramNameEntity.createButton] = "ページを作成"; var isForceTag = false; var isSelectBox = false; var paramsEntity = function(BooleanDefault){ var paramsSetting = new Object(); paramsSetting[paramNameEntity.category] = "string"; paramsSetting[paramNameEntity.parent] = "string"; paramsSetting[paramNameEntity.tags] = "string"; paramsSetting[paramNameEntity.forcetag] = "string"; paramsSetting[paramNameEntity.pagetitle] = "reverse-boolean"; paramsSetting[paramNameEntity.tagSelect] = "boolean"; for(var i in paramsSetting){ if(BooleanDefault){ switch(paramsSetting[i]){ case "boolean": paramsSetting[i] = false; break; case "string": paramsSetting[i] = ""; break; case "number": paramsSetting[i] = 0; break; case "reverse-boolean": paramsSetting[i] = true; break; } }else{ switch(paramsSetting[i]){ case "reverse-boolean": paramsSetting[i] = "boolean"; break; } } } this.paramList = paramsSetting; } var paramList = (new paramsEntity(false)).paramList; var locationH = location.href; if(locationH.indexOf("#") < 0)locationH += "#"; var settingList = locationH.split("#"); var setting = ""; for(var i = 1;i < settingList.length;i++){ setting += "#" + settingList[i]; } setting = setting.substring(1,setting.length); var params = setting.split(";"); var paramResult = (new paramsEntity(true)).paramList; for(i = 0; i < params.length;i++){ var singl = params[i]; if(singl){ setParam(singl); } } var paramDiv = document.createElement("div"); var paramTitle = document.createElement("b"); paramTitle.setAttribute("style","display:block;"); paramTitle.innerHTML = displayParamTitle[paramNameEntity.pagename]; var categorySpan = document.createElement("span"); categorySpan.setAttribute("id",displayParamTitle[paramNameEntity.category]); categorySpan.innerHTML = ""; if(paramResult[paramNameEntity.category]){ paramResult[paramNameEntity.category] = replasticPageName(paramResult[paramNameEntity.category]); if(paramResult[paramNameEntity.category].match(/\:./))paramResult[paramNameEntity.category] = ""; if(paramResult[paramNameEntity.category].length > 0){ if(!paramResult[paramNameEntity.category].match(/$\:/)){ paramResult[paramNameEntity.category] += ":"; } categorySpan.innerHTML = paramResult[paramNameEntity.category]; } } var pageNameInput = document.createElement("input"); pageNameInput.setAttribute("type","text"); pageNameInput.setAttribute("name",paramNameEntity.pagename); pageNameInput.setAttribute("style","height:1.5em;width:50%;"); pageNameInput.addEventListener( "keyup" ,function(e){ var obj = e.currentTarget; var objValue = obj.value; if(!objValue)return; var check = false; if(objValue.match(/[^a-zA-Z0-9\-_\:\[\]]/)){ check = true; } if(check){ obj.blur(); setTimeout(function(){obj.focus();},5) } while(objValue.match(/[^a-zA-Z0-9\-_\:\[\]]/)){ objValue=objValue.replace(/[^a-zA-Z0-9\-_\:\[\]]/,function(){ return ""; }); } obj.value = objValue; }); pageNameInput.addEventListener( "change" ,function(e){ var obj = e.currentTarget; obj.value=replasticPageName(obj.value); }); paramDiv.appendChild(paramTitle); paramDiv.appendChild(categorySpan); paramDiv.appendChild(pageNameInput); pagecreateForm.appendChild(paramDiv); if(paramResult[paramNameEntity.pagetitle]){ paramDiv = document.createElement("div"); paramTitle = document.createElement("b"); paramTitle.setAttribute("style","display:block;"); paramTitle.innerHTML = displayParamTitle[paramNameEntity.pagetitle]; var pageTitleInput = document.createElement("input"); pageTitleInput.setAttribute("name",paramNameEntity.pagetitle); pageTitleInput.setAttribute("type","text"); pageTitleInput.setAttribute("style","height:1.5em;width:50%;"); paramDiv.appendChild(paramTitle); paramDiv.appendChild(pageTitleInput); pagecreateForm.appendChild(paramDiv); } var createButton = document.createElement("input"); createButton.setAttribute("type","button"); createButton.setAttribute("value",displayParamTitle[paramNameEntity.createButton]); createButton.setAttribute("style","cursor:pointer;"); pagecreateForm.appendChild(createButton); paramResult[paramNameEntity.forcetag] = paramResult[paramNameEntity.forcetag].split(",").join(""); if(paramResult[paramNameEntity.tagSelect]){ var baseDiv = document.createElement("div"); paramTitle = document.createElement("b"); var selecter = document.createElement("select"); paramTitle.innerHTML = displayParamTitle[paramNameEntity.tagSelect]; if(paramResult[paramNameEntity.tags]){ if(paramResult[paramNameEntity.tags].length > 0){ paramResult[paramNameEntity.tags] = paramResult[paramNameEntity.tags].split(" ").join(","); var tagList = paramResult[paramNameEntity.tags].split(","); selecter.setAttribute("name",paramNameEntity.tags); for(var j = 0;j < tagList.length;j++){ if(tagList[j]){ if(tagList[j].length > 0){ var option = document.createElement("option"); option.value = tagList[j]; option.innerHTML = decodeURIExtension(tagList[j]); if(j == 0){ option.selected = true; isSelectBox = true; } selecter.appendChild(option); } } } } } if(isSelectBox){ baseDiv.appendChild(paramTitle); baseDiv.appendChild(selecter); baseDiv.appendChild(document.createElement("br")); baseDiv.appendChild(document.createElement("br")); pagecreateForm.insertBefore(baseDiv,pagecreateForm.firstChild); if(paramResult[paramNameEntity.forcetag].length > 0){ isForceTag = true; } } } if(!isSelectBox){ if(paramResult[paramNameEntity.forcetag].length > 0){ paramResult[paramNameEntity.tags] = paramResult[paramNameEntity.forcetag] + "," + paramResult[paramNameEntity.tags]; } createHideParam(paramNameEntity.tags); } createHideParam(paramNameEntity.parent); var StringFunction = "(function(elm){elm = elm.parentNode;\n"+ "elm." + paramNameEntity.pagename + ".value = replasticPageName(elm." + paramNameEntity.pagename + ".value);\n" + "if(elm." + paramNameEntity.pagename + ".value.length <= 0){return;}\n"+ "var url = document.referrer;\n"+ "url = 'http://' + (url.split('http://').join('').split('/')[0]) + '/';\n"+ "var category = document.getElementById('" + displayParamTitle[paramNameEntity.category] + "').innerHTML;\n"+ "url += category + elm." + paramNameEntity.pagename + ".value;\n"+ "url += '/edit/true';" + createFunction()+ "\n"+ createForceTag() + "if(elm." + paramNameEntity.parent + ".value.length > 0){url += '/parentPage/';\n"+ "url += elm." + paramNameEntity.parent + ".value;}\n"+ "window.parent.location.href = url;})(this);"; createButton.setAttribute("onclick",StringFunction); function setParam(target){ if(!target)return; target = target.trim(); if(target.indexOf("=") < 0)return; var parmName = target.split("=")[0]; if(!parmName)return; parmName = parmName.trim(); var paramValue = target.split("=")[1]; if(!paramValue)return; paramValue = paramValue.trim(); for(var i in paramList){ if(parmName == i){ switch(paramList[i]){ case "string": paramResult[i] = paramValue; break; case "boolean": if(paramValue == "false" || paramValue == "False" || paramValue == "0"){ paramResult[i] = false; }else if(paramValue == "true" || paramValue == "True" || paramValue == "1"){ paramResult[i] = true; } break; case "number": var checkNum = Number(paramValue); if(isNaN(checkNum))return; paramResult[i] = checkNum; break; } } } } function createHideParam(paramName){ var UnDisplaySetting = document.createElement("textarea"); UnDisplaySetting.setAttribute("name",paramName); UnDisplaySetting.setAttribute("style","display:none;"); UnDisplaySetting.value = ""; if(paramResult[paramName]){ if(paramResult[paramName].length > 0){ UnDisplaySetting.value = paramResult[paramName]; if(paramName == paramNameEntity.tags){ UnDisplaySetting.value = UnDisplaySetting.value.split(" ").join(","); var deleteSpace = UnDisplaySetting.value.split(","); UnDisplaySetting.value = ""; var isFirst = true; for(var i = 0;i < deleteSpace.length;i++){ if(deleteSpace[i].length > 0){ UnDisplaySetting.value += ((!isFirst)?",":"") +deleteSpace[i]; isFirst = false; } } } } } pagecreateForm.appendChild(UnDisplaySetting); } function createFunction(){ if(!paramResult[paramNameEntity.pagetitle])return ""; var result = "url += '/title/';if(elm." + paramNameEntity.pagetitle + ".value.length <= 0){"+ "url += elm."+paramNameEntity.pagename+".value;}else{"+ "url += elm."+ paramNameEntity.pagetitle + ".value;}"; return result; } function createForceTag(){ var result = "if(elm."+ paramNameEntity.tags + ".value.length > 0){\n"+ "url += '/tags/' + elm." + paramNameEntity.tags + ".value;}\n"; if(isForceTag){ result = "url += '/tags/" + paramResult[paramNameEntity.forcetag] + "';\n" + "if(elm."+ paramNameEntity.tags + ".value.length > 0){\n"+ "url += ',' + elm." + paramNameEntity.tags + ".value;}\n"; } return result; } }); </script> </head> <body> <form id="pagecreateForm"> </form> </body>
page revision: 4, last edited: 25 Jul 2020 08:54






