PageHeaderTest
PageHeaderTestEdit

    Tabla de contenidos
    No hay encabezados

    This template shows the page header with its description, table of contents (TOC) and navigation tree

    Paramters: Page, Description, Theme

    var mPars = {     
      mPage: (__request.args.page ? string.deserialize(__request.args.page) : null ) ?? args.page ?? page,
      smDesc: ((__request.args.desc) ? ((__request.args.desc is map) ? __request.args.desc : { __ : __request.args.desc }) : null) ??
              ((args.desc) ? ((args.desc is map) ? args.desc : { __ : args.desc }) : null) ??
              null,
      slLang: ((__request.args.lang) ? ((__request.args.lang is list) ? __request.args.lang : [__request.args.lang]) : null) ??
              ((args.lang) ? ((args.lang is list) ? args.lang : [args.lang]) : null) ??
              null,
      sTheme: __request.args.theme ?? args.theme ?? null
    };
    //Web.Pre(Json.Format(mPars));
    
    //Get Language(s)
    var sLang=null;
    var slLang=null;
    var smDesc=mPars.smDesc;
    if (mPars.slLang==null) {
      let sLang=String.ToLower(mPars.mPage.language);
      if (sLang not in ["en","es","eu"])
        let sLang='en';  //by default
      let slLang= [sLang];
      let smDesc..={ (sLang) : smDesc["__"] };
    }//if
    else {
      foreach (var sLang in mPars.slLang)
      {
        if (sLang not in ["en","es","eu"])
          let sLang='en';  //by default
        if (sLang not in slLang)
          let slLang..= [sLang];    
      }
      let sLang=slLang[0]; //set main language
    }//el
    //Web.Pre(Json.Format(smDesc));
    //Web.Pre(Json.Format(slLang));
    
    //Set Main Theme
    var smLangThemes= { en: "pink", es: "orange", eu: "green" };
    var sTheme= (mPars.sTheme ? String.ToLower(mPars.sTheme) : null) ?? smLangThemes[sLang] ?? "white";
    //Web.Pre(Json.Format(sTheme));
    
    //Set Theme Colors
    var sLgtCol,sDrkCol;
    var smLgtCol= { pink: "rgb(255, 204, 255)", orange: "rgb(255, 204, 153)", green: "rgb(204, 255, 204)", white: "white" };
    var smDrkCol= { pink: "rgb(204, 153, 255)", orange: "rgb(255, 153, 0)", green: "rgb(51, 153, 102)", white: "white" };
    var sLgtCol=smLgtCol[sTheme];
    var sDrkCol=smDrkCol[sTheme];
    
    //Comppose Description Line
    if (smDesc!=null) {
      var sDescLine="<p>";
      foreach (var sLang1 in slLang)
      {
        if (__index>0) let sDescLine..="&nbsp;&nbsp;";
        var sTheme1= (mPars.sTheme ? String.ToLower(mPars.sTheme) : null) ?? smLangThemes[sLang1] ?? "white";  
        var sLgtCol1=smLgtCol[sTheme1];
        var sDesc=smDesc[sLang1];
        if (String.IndexOf(sDesc,"<br />")!=0)
          let sDesc="&nbsp;"..sDesc.."&nbsp;";
        else
          let sDesc="<br />&nbsp;"..String.SubStr(sDesc,6).."&nbsp;";
        let sDescLine..="<span style='background-color: "..sLgtCol1..";'>"..sDesc.."</span>";
      }
      let sDescLine..="</p>";
      Web.Html(sDescLine);
    }//if
    
    //var sPageToc1=Wiki.Toc('/');
    //Web.Text(sPageToc1);
    //Web.Text(Page.Toc);
    
    //Prepare Page Toc: Interactive Discussion
    var smIntComSect={
      en: "Interactive discussion",
      es: "Discusión interactiva",
      eu: "Eztabaida interaktiboa"
    };
    var smIntComMark={
      en: ".3a)_Interactive_discussion",
    es: ".3a)_Discusi.c3.b3n_interactiva",
    eu: ".3a)_Eztabaida_interaktiboa"
    }; var sIntComSect=smIntComSect[sLang]; var sIntComMark=smIntComMark[sLang];
    //var sIntComMark="IC";
    var sIntComLi="<li><span>:) </span><a href='#"..sIntComMark.."' rel='internal'>"..sIntComSect.."</a></li>"; //Web.Pre(Json.Format(Web.Text(Wiki.Toc(mPars.mPage.parent.path)))); //<html><body><span id=\"page.toc\" /></body></html> //<div class=\"wiki-toc\"><ol style=\"list-style-type:none; margin-left:0px; padding-left:0px;\"><li><span>1.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#DekiMVC\" rel=\"internal\">DekiMVC</a><ol style=\"list-style-type:none; margin-left:0px; padding-left:15px;\"><li><ol style=\"list-style-type:none; margin-left:0px; padding-left:15px;\"><li><span>1.1.1.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Objectives\" rel=\"internal\">Objectives</a></li><li><span>1.1.2.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Parts\" rel=\"internal\">Parts</a></li><li><span>1.1.3.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Doing_It!\" rel=\"internal\">Doing It!</a><ol style=\"list-style-type:none; margin-left:0px; padding-left:15px;\"><li><span>1.1.3.1.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#How.3f\" rel=\"internal\">How?</a></li><li><span>1.1.3.2.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Step_.231_.3a_Doing_it_more.c2.a0_Visual\" rel=\"internal\">Step #1 : Doing it more\u00a0 Visual\u00a0 </a></li><li><span>1.1.3.3.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Step_.232_.3a_Doing_it_more.c2.a0_Visual_.232\" rel=\"internal\">Step #2 : Doing it more\u00a0 Visual #2\u00a0 </a></li></ol></li><li><span>1.1.4.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#.3a)_Interactive_discussion\" rel=\"internal\">:) Interactive discussion</a></li></ol></li></ol></li></ol></div> //<div class=\"wiki-toc\"><ol style=\"list-style-type:none; margin-left:0px; padding-left:0px;\"><li><span>1.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Why.3f_Visualization_of_Concerns\" rel=\"internal\">Why? Visualization of Concerns</a></li><li><span>2.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#How.3f_By_example\" rel=\"internal\">How? By example</a></li><li><span>3.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Sectioning_.3a_Organize\" rel=\"internal\">Sectioning : Organize</a></li><li><span>4.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Sectioning_.3a_Separate_.26_Visualize\" rel=\"internal\">Sectioning : Separate &amp; Visualize</a></li><li><span>5.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Sectioning_.3a_Logging\" rel=\"internal\">Sectioning : Logging</a></li><li><span>6.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Using_DekiMVC_controller\" rel=\"internal\">Using DekiMVC controller</a></li><li><span>7.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Running_our_Example\" rel=\"internal\">Running our Example</a></li></ol></div> //Set Page Toc var xPageToc=Web.Html("http://www.gureweb.net/@api/deki/pages/=Template:@himikel%252FWikiToc/contents?mode=view&format=xhtml&pageid=1&path="..mPars.mPage.Path.."&authtoken="..user.authtoken); //var xPageToc=Web.Html("http://www.gureweb.net/@api/deki/pages/=Template:@himikel%252FWikiToc/contents?mode=view&format=xhtml&pageid=1&path=/MindTouch/DekiMVC"); //var xPageToc=Wiki.Template("Template:@himikel/WikiToc", { path: "/MindTouch/DekiMVC/" }); //var xPageToc=Wiki.Toc("/MindTouch/DekiMVC"); //var xPageToc=Wiki.Toc(mPars.mPage.Path); var sPageToc=Web.Text(xPageToc); let sPageToc=String.Replace(sPageToc,"\n",""); //var sPageToc=Xml.Text{ doc: xPageToc, xml: true }; //Web.Pre(Json.Format(sPageToc)); if (String.IndexOf(sPageToc,"<div class=\"wiki-toc\"><em>")>=0) //No Headers //if (String.IndexOf(sPageToc,"<div class=\"wiki-toc\"><em>No headers</em></div>")>=0) //No Headers { let sPageToc="<div class='wiki-toc'><ol style='list-style-type:none; margin-left:0px; padding-left:0px;'>"; let sPageToc..=sIntComLi; let sPageToc..="</ol></div>"; }//if else { var nEndOlPos=String.LastIndexOf(sPageToc,"</ol>"); let sPageToc=String.SubStr(sPageToc,0,nEndOlPos)..sIntComLi..String.SubStr(sPageToc,nEndOlPos); }//el //Contents & Navigation table var xPageTree=AjaxWikiTree{ path: mPars.mPage.path }; var xlPageTreeScript=Xml.List{ doc: xPageTree, xpath: "//script", xml: true }; var xPageTreeDiv=xPageTree["//body"]; //var xPageTreeDiv=xPageTree["//div"]; var sPageTreeDiv=Xml.Text{ doc: xPageTreeDiv, xml: true }; //Web.Pre(Json.Format(sPageTreeDiv)); //Web.Pre(Json.Format(Xml.List{ doc: xPageTree, xpath: "//*", xml: true })); var sContNavTable=" <table cellspacing='1' cellpadding='1' border='0' style='width: 100%; table-layout: fixed;'> <tbody> <tr> <td valign='top' style='width: 45%;'>                 <span style='font-size: medium;'><strong><span style='background-color: "..sDrkCol..";'>                     &nbsp;v&nbsp;                 </span></strong></span>                 "..sPageToc.."             </td> <td valign='top' style='width: 5%;'>                 <span style='font-size: medium;'><strong><span style='background-color: "..sDrkCol..";'>                     <a title='..' href='"..mPars.mPage.parent.path.."'>&nbsp;&lt;&nbsp;</a> <br />                 </span></strong></span>             </td> <td valign='top' style='width: 50%;'>                 <span style='font-size: medium;'><strong><span style='background-color: "..sDrkCol..";'>                     &nbsp;&gt;&nbsp;                 </span></strong></span>                 "..sPageTreeDiv.."             </td> </tr> </tbody> </table>"; Web.Html(sContNavTable); //Add JavaScripts foreach (var xPageTreeScript in xlPageTreeScript) Web.Xml(xPageTreeScript);


     

    Etiquetas (Edit tags)
    • No tags
    Debe inicie sesión para enviar un comentario.