a14

原点様: 汎用型ページクリエイター - 椎茸天然製造
作者: C-takeC-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>
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License