Jump to content

Killer Shrike: A Question About Your Site


Vondy

Recommended Posts

Re: Killer Shrike: A Question About Your Site

 

LL the link you want is here...

 

http://www.killershrike.com/CharacterMaster/CharacterGenreList.aspx

 

make sure you click the Supers tab at the top.

 

Vondy I have no idea about the one you're asking. I don't think I ever saw it so I don't even know where to begin to look for it.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

Did you reorg your site? There used to be a spells as skills based magic system' date=' but for the life of me I cannot find it. I've gone searching a few times now, but alas, I can't find it.[/quote']

 

What you are looking for is on this page:

http://www.killershrike.com/FantasyHERO/HighFantasyHERO/ShrikeMagicSystems.aspx

 

(you have to scroll down a bit)

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

Did you reorg your site? There used to be a spells as skills based magic system' date=' but for the life of me I cannot find it. I've gone searching a few times now, but alas, I can't find it.[/quote']

 

I haven't reorg'd the fantasy section in a good while, a couple of years at least.

 

I actually have a few spells as skills systems if you include Familiarities, but you probably mean Magecraft.

 

 

It's linked to from the main content portal,

 

http://www.killershrike.com/FantasyHERO/HighFantasyHERO/FantasyHERO.aspx

 

and the Magic Systems doc

 

http://www.killershrike.com/FantasyHERO/HighFantasyHERO/ShrikeMagicSystems.aspx

 

and several other places where relevant.

 

 

Also, all the main pages of the site are reachable from the dynamic nav menu.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

As long as the topic's come up' date=' I was trying to look up Killer Shrike's 5E character sheets for several published comic-book heroes, including Dr. Strange and Magnus, but couldn't locate them on the site. Are they still there?[/quote']

 

That page was removed a good while back, when the Character Genre List was rolled out. It was just a hand-maintained list of links, and with the automated system I put in place there was no further reason to keep and maintain it.

 

The characters you are looking for would be under the "Supers" genre, with the campaign type of "Conversion".

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

Me Me Pick Me,

 

 

I got a Question

 

Are you going to keep your sites 5ER stuff up (PLEASE>>>>>>>>>)

 

and if not is there a way to download all of it

 

Lord Ghee

 

Yes, I plan to keep the 5e material up, at least thru the end of the current hosting contract.

 

I have not yet decided what I plan to do going forward but I am seriously contemplating an entirely new site for 6e done on a different technology base, ASP.NET MVC, as both an opportunity to make a clean break and to develop my skills with this new platform (built around a very old pattern).

 

However, the level of effort will be extreme, and I have concerns about my ability to commit the time to it. My days of staying up two to three days straight or getting by on 3 to 4 hours of sleep a night for a few weeks at a stretch to juggle work, life, and hobby time are behind me. These days I need at least 6 hours of sleep a night or I get cranky and I can't maintain that for more than four days at a time or so. Age catches up with all of us. :(

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

There's no real way to generate a "zip file" of all content short of going thru every page and saving it local --> and even you'd just get a particular version of the dynamic content. Most of the app is either dynamically generated or content injected; most of the "pages" are just a url endpoint.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

There are utilities that will crawl a website, and download and store each page. I did this last night just to see what would happened. It downloaded nearly a gig of data from KillerShrike. com, and took about 4 hours, but it got a bunch of stuff. I limited the "levels" of links to 5, so I don't know if it got everything, but I'll post a zip file of the result with your permission. It's about 145 megs zipped up.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

There are utilities that will crawl a website' date=' and download and store each page. I did this last night just to see what would happened. It downloaded nearly a gig of data from KillerShrike. com, and took about 4 hours, but it got a bunch of stuff. I limited the "levels" of links to 5, so I don't know if it got everything, but I'll post a zip file of the result with your permission. It's about 145 megs zipped up.[/quote']

 

Did it get all permutations of, say, the spell listings? That's probably the deepest / most circular scenario.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

Addendum: I seem to be missing a few thing. For example, I have all the Runecrafter stuff, except for their package deal. I'll try to re-run the tool with different parameters. It as a "continue" option to recover after a broken download, maybe I can use that to extend the link depth without downloading absolutely everything again.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

Yes, it seemed to get those. Here's a directory listing:

 

Microsoft Windows [Version 6.0.6002]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\Users\Brenden>cd Downloads\killershrike\killershrike.com\FantasyHERO\Content

C:\Users\Brenden\Downloads\killershrike\killershrike.com\FantasyHERO\Content>ls
ActiveFantasyEffects.aspx
ActiveFantasyEffects.aspx@EffectId=2649
ActiveFantasyEffects.aspx@EffectTypeId=13
ActiveFantasyEffects.aspx@EffectTypeId=13&EffectCategoryId=78
ActiveFantasyEffects.aspx@EffectTypeId=13&EffectCategoryId=79
ActiveFantasyEffects.aspx@EffectTypeId=13&EffectCategoryId=80
ActiveFantasyEffects.aspx@EffectTypeId=14
ActiveFantasyEffects.aspx@EffectTypeId=14&EffectCategoryId=81
ActiveFantasyEffects.aspx@EffectTypeId=14&EffectCategoryId=82
ActiveFantasyEffects.aspx@EffectTypeId=14&EffectCategoryId=83
ActiveFantasyEffects.aspx@EffectTypeId=15
ActiveFantasyEffects.aspx@EffectTypeId=15&EffectCategoryId=84
ActiveFantasyEffects.aspx@EffectTypeId=17
ActiveFantasyEffects.aspx@EffectTypeId=17&EffectCategoryId=82
ActiveFantasyEffects.aspx@EffectTypeId=17&EffectCategoryId=83
ActiveFantasyEffects.aspx@c=psionic
ActiveFantasyEffects.aspx@c=vancian
CharacterTemplates
PackageDeals
Powers
RacePackageDeals
SiteMapGrid.js

 

I did notice something odd. All those files have an @ sign instead of a ?. I don't know why, and it's breaking a lot of the links (other wise, I could browse this on my hard drive). I'll look into that.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

Yes, it seemed to get those. Here's a directory listing:

...

I did notice something odd. All those files have an @ sign instead of a ?. I don't know why, and it's breaking a lot of the links (other wise, I could browse this on my hard drive). I'll look into that.

 

There's a lot more depth to that section than that set captures.

 

What tool are you using?

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

I'm using wget.

 

There's a lot more links on that page, but they seem to go to other sections. Example:

 

	Clairsentience

 

Goes to ActivePowersList, not Content. The stuff between \'s on the url are stored as sub-directories. Those files in the list above without suffixes, like CharacterTemplates or Powers, are subdirs full of files.

 

Aside from my own misuse of the tool, it seems to be pretty complete. I don't see any broken links until the depth gets very high, or those darn @'s come into play.

 

BTW, there's an option to "mirror" a site, which looks like it just creates static pages of everything. Kinda interesting.

 

Oh, those @'s seem like they're name mangling from the tool. I download half the site with an option, --convert-links, to make it browsable on the hard disk. The second time, I tried a different option which I thought would do the same thing, but I think now it didn't. I might have to redownload the whole thing with a consistent set of option. Ouch.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

>Curufea

 

Its not ASP, its ASP.NET.

 

Some of the content is injected from a db, but the db is highly normalized and not data-dump friendly without transformation.

 

Some of the content is grandfathered server side includes that get spliced in dynamically, but the includes themselves are largely static.

 

Some of the content is newer-style components that are the same concept, but fully dynamic.

 

Some of the content is programmatic.

 

The nav templating is done at runtime using Master pages.

 

Its not a Web Site, its a Web Application, which means its a (large) set of HTML templates with backing OOP objects in compiled binaries.

 

 

I don't know what the @ symbol is meant to represent to the web crawler gojira is using; it should be a querystring start symbol which is a ? , as gojira recognizes.

 

{shrug}

 

If we can get this crawler figured out and get a good pull and the zipped version is compact, I've got no problem with periodically running it and providing the zipped up version for disconnected browsing / archiving. Seems like a win win to me.

 

->gojira, it might help to know that the effects lists are custom SiteMapProvider interpreters I wrote. They read the same sitemap used for the nav and build themselves up from it, so I don't have to do double management of the links. If I add a branch I just put it in the sitemap and both the nav and the links page automagically pick it up. I parse the sitemap as XML and emit the HTML directly.

 

There's higher-level code around it, but this is the grid control:

 

template:

<%@ Control AutoEventWireup="true" Codebehind="SiteMapGrid.ascx.cs"
Inherits="KillerShrike.FantasyHERO.Content.SiteMapGrid"
Language="C#" %>
runat="server" SiteMapProvider="FantasyEffectsSitemap" />

type="text/javascript">


 

SiteMapGrid.js:

function changeLink(txtElement,linkElement,replaceElement)
{
if(document.getElementById(txtElement).value == "")
	return false;
if(document.getElementById(txtElement).value.length < 3)
{
	alert('Your search keyword must be at least three (3) characters long.');
	return false;
}
var appender = (document.getElementById(linkElement).baseURI.indexOf('?') == -1) ? '?' : '&';

document.getElementById(linkElement).href = 
	document.getElementById(linkElement).baseURI + appender + document.getElementById(replaceElement).value.replace('[value]',document.getElementById(txtElement).value);
return true;
}

 

code behind

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.Text;
using System.IO;
using KillerShrike.Effects;
using EdHastings.DataManipulationUtils;
using KillerShrike.Enums.Effects;
namespace KillerShrike.FantasyHERO.Content
{
   public partial class SiteMapGrid : System.Web.UI.UserControl
   {
       public string SiteMapDataSourceId
       {
           get { return this.SiteMapDataSource_FantasyEffects.SiteMapProvider; }
           set { this.SiteMapDataSource_FantasyEffects.SiteMapProvider = value; }
       }

       public HtmlTable MenuTable
       {
           get { return (HtmlTable)FindControl("tblMenu"); }
       }
       private Queue nodeBuffer = new Queue();
       private int iDepth;

       protected void Page_Load(object sender, EventArgs e)
       {

       }

       public void initSiteMapGrid()
       {
           if (SiteMapDataSourceId != null)
           {
               SiteMapNode smn = SiteMapDataSource_FantasyEffects.Provider.RootNode; //HIGH FANTASY HERO ROOT
               smn = smn.ChildNodes[0]; //FANTASY EFFECTS START
               SiteMapNodeBuffer smnb = new SiteMapNodeBuffer(smn.Title, smn.Url, iDepth);
               RecursiveSiteMapNodeParser(smn, smnb);
               nodeBuffer.Enqueue(smnb);
               BuildGrid();
           }
       }
       private void RecursiveSiteMapNodeParser(SiteMapNode smn, SiteMapNodeBuffer smnb)
       {
           foreach (SiteMapNode child in smn.ChildNodes)
           {
               iDepth++;
               SiteMapNodeBuffer smnbChild = new SiteMapNodeBuffer(child.Title, child.Url, iDepth);
               RecursiveSiteMapNodeParser(child, smnbChild);
               iDepth--;
               smnb.SubNodeBuffer.Enqueue(smnbChild);
           }
       }
       private void BuildGrid()
       {

           HtmlTableRow htrTopic = new HtmlTableRow();
           HtmlTableCell htcTopic = new HtmlTableCell();
           htcTopic.Attributes["class"] = "SUBHEADER";
           SiteMapNodeBuffer smnbTopic = nodeBuffer.Dequeue();
           htcTopic.InnerHtml = smnbTopic.Link;
           htrTopic.Cells.Add(htcTopic);
           MenuTable.Rows.Add(htrTopic);
           AddSQLLikeTextBoxRow(EffectFieldsEnum.EffectName);
           GetGridRows(smnbTopic, MenuTable);

       }

       private string tableCollapse = "border-collapse:collapse;";
       private void GetGridRows(SiteMapNodeBuffer smnb, HtmlTable parent)
       {
           /*
            *HEADER Depth = 1
            * TYPE  Depth = 2
            * CATEGORY1    CATEGORY2   CATEGORY3 Depth = 3
            */
           ///for each category, add a cell to htrCategory
           /// when cell max reached
           ///     seal htrCategory and add it to
           /// htCategoryContent
           ///     Re-new htrCategory and resume adding cells
           /// repeat as needed
           /// Afterwards, seal htCategoryContent and add it to
           /// htcCategoryContent, then seal htcCategoryContent and add it to
           /// htrCategoryContent, then seal htrCategoryContent and add it to 
           /// parent
           /// done
           while (smnb.SubNodeBuffer.Count > 0)
           {
               //Add Rows to table
               SiteMapNodeBuffer smnbChild = smnb.SubNodeBuffer.Dequeue();
               switch (smnbChild.Depth)
               {
                   case 1:
                       GridRowDepth1(smnbChild, parent);
                       break;
                   case 2:
                       GridRowDepth2(smnbChild, parent);
                       break;
                   case 3:
                       GridRowDepth3(smnbChild, parent);
                       break;
               }
           }
       }

       #region Depth1 -- HEADERS
           private void GridRowDepth1(SiteMapNodeBuffer smnbChild, HtmlTable parent)
       {
           if (smnbChild.SubNodeBuffer.Count > 0)
           {
               HtmlTableRow htrHeader = new HtmlTableRow();
               HtmlTableCell htcHeader = new HtmlTableCell();
               htcHeader.Attributes["class"] = "topic";
               htcHeader.InnerHtml = smnbChild.Link;
               htrHeader.Cells.Add(htcHeader);
               parent.Rows.Add(htrHeader);

               GetGridRows(smnbChild, parent);

           }
       }
       #endregion

       #region Depth2 -- TYPES
	    private void GridRowDepth2(SiteMapNodeBuffer smnbChild, HtmlTable parent)
           {
               GridAddTypeRow(smnbChild, parent);
               if (smnbChild.SubNodeBuffer.Count > 0)
                   GridAddTypeContentRow(smnbChild, parent);
           }
           private static void GridAddTypeRow(SiteMapNodeBuffer smnbChild, HtmlTable parent)
           {
               HtmlTableRow htrType = new HtmlTableRow();
               HtmlTableCell htcType = new HtmlTableCell();
               HtmlAnchor haType = new HtmlAnchor();
               haType.HRef = smnbChild.Href;
               haType.InnerHtml = smnbChild.Link;
               haType.Attributes["style"] = "font-weight: bold;";
               htcType.Controls.Add(haType);
               htcType.Attributes["class"] = "subtopic";
               htrType.Cells.Add(htcType);
               parent.Rows.Add(htrType);
           }
           private void GridAddTypeContentRow(SiteMapNodeBuffer smnbChild, HtmlTable parent)
       {
           HtmlTableRow htrTypeChild = new HtmlTableRow();
           HtmlTableCell htcTypeChild = new HtmlTableCell();
           HtmlTable htTypeChild = new HtmlTable();
           htTypeChild.Width = "100%";
           htTypeChild.Attributes["style"] += tableCollapse;


           GridRowDepth3(smnbChild, htTypeChild);

           htcTypeChild.Controls.Add(htTypeChild);
           htrTypeChild.Cells.Add(htcTypeChild);
           parent.Rows.Add(htrTypeChild);
       }
    #endregion

       #region Depth3 -- CATEGORIES
           private void GridRowDepth3(SiteMapNodeBuffer smnbChild, HtmlTable parent)
           {
               HtmlTableRow htrCategoryContent = new HtmlTableRow();
               HtmlTableCell htcCategoryContent = new HtmlTableCell();
               HtmlTable htCategoryContent = GetCategoryLinkTable(smnbChild);
               htcCategoryContent.Controls.Add(htCategoryContent);
               htrCategoryContent.Cells.Add(htcCategoryContent);
               parent.Rows.Add(htrCategoryContent);
           }
           private HtmlTable GetCategoryLinkTable(SiteMapNodeBuffer smnbChild)
           {
               HtmlTable htCategoryContent = GetCategoryContentTable();
               HtmlTableRow htrCategorys = new HtmlTableRow();
               int iCellCounter = 0;
               int iCellLimit = 3;
               //bool multiRow = (smnbChild.SubNodeBuffer.Count > iCellLimit);
               while (smnbChild.SubNodeBuffer.Count > 0)
               {
                   iCellCounter++;
                   SiteMapNodeBuffer smnbCategory = smnbChild.SubNodeBuffer.Dequeue();
                   HtmlTableCell htcCategory = new HtmlTableCell();
                   htcCategory.Width = GetCategoryLinkCellWidth(iCellLimit);
                   htcCategory.NoWrap = false;
                   HtmlAnchor haCategory = new HtmlAnchor();
                   haCategory.HRef = smnbCategory.Href;
                   haCategory.InnerHtml = smnbCategory.Link;
                   htcCategory.Controls.Add(haCategory);
                   if (iCellCounter > iCellLimit)
                   { //add current row and reset
                       htCategoryContent.Rows.Add(htrCategorys);
                       htrCategorys = new HtmlTableRow();
                       iCellCounter = 1;
                   }
                   htrCategorys.Cells.Add(htcCategory);
               }
               while (iCellCounter < iCellLimit)
               {
                   HtmlTableCell emptyCell = new HtmlTableCell();
                   emptyCell.InnerHtml = " ";
                   emptyCell.Width = GetCategoryLinkCellWidth(iCellLimit);
                   htrCategorys.Cells.Add(emptyCell);
                   iCellCounter++;
               }

               htCategoryContent.Rows.Add(htrCategorys);
               return htCategoryContent;
           }
           private static string GetCategoryLinkCellWidth(int iCellLimit)
           {
               return String.Format("{0}%", (100 / iCellLimit).ToString());
           }
           private HtmlTable GetCategoryContentTable()
       {
           HtmlTable htCategoryContent = new HtmlTable();
           htCategoryContent.Width = "100%";
           htCategoryContent.Attributes["style"] += tableCollapse;
           return htCategoryContent;
       }

       #endregion

       private void AddSQLLikeTextBoxRow(EffectFieldsEnum field)
       {
           string fieldName = EnumUtils.GetName(typeof(EffectFieldsEnum), field);
           string fieldDesc = EnumUtils.GetDescription(field);

           HtmlTableRow htrDiscipline = new HtmlTableRow();
           HtmlTableCell htcDiscipline = new HtmlTableCell();
           htcDiscipline.Attributes["class"] = "subtopic";
           htcDiscipline.InnerHtml = "Search by Effect Name";
           htrDiscipline.Cells.Add(htcDiscipline);
           MenuTable.Rows.Add(htrDiscipline);


           HtmlTableRow htr = new HtmlTableRow(); //row
           HtmlTableCell htc = new HtmlTableCell(); //cell
           htc.Width = "100%";
           HtmlTable htHolder = new HtmlTable();
           htHolder.CellPadding = 2;
           htHolder.Attributes["style"] += tableCollapse;
           htHolder.Width = "100%";
           HtmlTableRow htrHolder = new HtmlTableRow();

           StringBuilder sbLabel = new StringBuilder(); //label for directions
           sbLabel.AppendFormat("{0} like...", fieldDesc);

           HtmlInputText hit = new HtmlInputText("text"); //user input -- type in string
           hit.Style["width"] = "100%";
           HtmlAnchor ha = new HtmlAnchor(); //submit link
           StringBuilder sbParam = new StringBuilder(); //build link param

           sbParam.AppendFormat(fieldName);
           sbParam.AppendFormat("Like");
           sbParam.AppendFormat("=[value]");

           HtmlInputHidden hih = new HtmlInputHidden(); //holder for param tag
           hih.Value = sbParam.ToString();

           HtmlTableCell htcLabel = new HtmlTableCell(); //cell
           htcLabel.Width = "20%";
           htcLabel.Align = "left";
           htcLabel.Attributes["style"] = "font-weight: bold;";

           htcLabel.InnerHtml = sbLabel.ToString();
           htcLabel.Controls.Add(hit);
           htcLabel.Controls.Add(hih);

           htrHolder.Cells.Add(htcLabel);

           HtmlTableCell htcTextbox = new HtmlTableCell(); //cell
           htcTextbox.Width = "50%";
           htcTextbox.Align = "left";
           htcTextbox.Controls.Add(hit);
           htrHolder.Cells.Add(htcTextbox);

           ha.HRef = Request.RawUrl;
           ha.InnerHtml = "Submit";

           HtmlGenericControl hgc = new HtmlGenericControl("span"); //placeholder for js events around link
           hgc.Controls.Add(ha);

           HtmlTableCell htcLink = new HtmlTableCell(); //cell
           htcLink.Width = "30%";
           htcLink.Align = "center";
           htcLink.Controls.Add(hgc);
           htrHolder.Cells.Add(htcLink);

           htHolder.Rows.Add(htrHolder);
           htc.Controls.Add(htHolder);
           htr.Cells.Add(htc);
           MenuTable.Rows.Add(htr);
           hgc.Attributes["onfocus"] = String.Format("changeLink('{0}','{1}','{2}');", hit.ClientID, ha.ClientID, hih.ClientID);
           hgc.Attributes["onmouseover"] = hgc.Attributes["onfocus"];

       }


       private class SiteMapNodeBuffer
       {
           //link
           //href
           //depth
           private string _link;

           public string Link
           {
               get { return _link; }
               set { _link = value; }
           }

           private string _href;

           public string Href
           {
               get { return _href; }
               set { _href = value; }
           }

           private int _depth;

           public int Depth
           {
               get { return _depth; }
               set { _depth = value; }
           }

           private Queue _subNodeBuffer = new Queue();

           public Queue SubNodeBuffer
           {
               get { return _subNodeBuffer; }
               set { _subNodeBuffer = value; }
           }
           public SiteMapNodeBuffer(string link, string href, int depth)
           {
               Link = link;
               Href = href;
               Depth = depth;
           }
       }
   }
}

 

sitemap root

<?xml version="1.0" encoding="utf-8" ?>

     title="Abilities / Spells / Items"
     description="Ability / Spell / Item Lists" >
                title="Abilities & Items"
                description="Ability & Item Lists" />
                title="Psionic Powers"
                description="Psionic Powers" />
                title="Vancian Spells"
                description="Vancian Spells" />



 

And the detailed effects sitemap

<?xml version="1.0" encoding="utf-8" ?>

              title="High Fantasy HERO"
              description="High Fantasy HERO" >

                title="Fantasy Effects"
                description="Fantasy Effects" >
       title="By Type"
       description="By Type" >

                    title="Items"
                    description="Items" >
                      title="Permanent Magic"
                      description="Permanent Magic" />
                      title="Ephemeral Magic"
                      description="Ephemeral Magic" />
                      title="Mundane"
                      description="Mundane" />


                    title="Exceptional Abilities"
                    description="Exceptional Abilities" >
                      title="Heroic Knacks"
                      description="Heroic Knacks" />
                      title="Innate Abilities"
                      description="Innate Abilities" />
                      title="Learned Abilities"
                      description="Learned Abilities" />

                    title="Granted Powers"
                    description="Granted Powers" >
                      title="Domains"
                      description="Domains" />
                      title="Misc"
                      description="Misc" />

                    title="Racial Ability"
                    description="Racial Ability" >
                      title="Innate Abilities"
                      description="Innate Abilities" />
                      title="Learned Abilities"
                      description="Learned Abilities" />






                title="Contact Webmaster"
                description="Contact Webmaster" />
                title="KillerShrike.com"
                description="KillerShrike.com" />



 

Maybe something helpful in there.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

I'm familiar with dynamic content generation, but not some of your specifics. I've never used Server Side Includes, and I don't speak ASP or it's .NET variants. I'm also not screen scraping, so the general layouts don't really do much for me, I think, since they don't matter for the download process. Only links get downloaded, and only as static pages. There's no way I can "reach behind" the sever and get at your scripts or programming or raw data.

 

One thing that would help me is the size of the individual web pages. Each of your pages has a rather large menu with pop-ups for navigation. As an example, FantasyHERO/FantasyHERO.aspx is about 85% menu, and it's 225k bytes. If anything could be done to reduce the size of that menu, it would speed downloads and reduce storage immensely, since it appears on every page.

 

I haven't poked around much with menu widgets, but maybe it's time to start.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

Dang, must spread rep...

 

It is very interesting to see.

 

Although I do wonder at the sitemap node XML where you're declaring variables in the url attribute - there must be an easier way where you could just put the ID in and have the rest of the url concatenated together from a template.

 

Possibly even an XSLT to choose the EffectTypeId or EffectCategoryId based on a naming convention for the page? You could include some delimiters in the title or description ie title="fh - Learned Abilities" which tells it what URL and IDs to use based on the "fh" part or similar.

Link to comment
Share on other sites

Re: Killer Shrike: A Question About Your Site

 

Dang, must spread rep...

 

It is very interesting to see.

 

Although I do wonder at the sitemap node XML where you're declaring variables in the url attribute - there must be an easier way where you could just put the ID in and have the rest of the url concatenated together from a template.

 

Possibly even an XSLT to choose the EffectTypeId or EffectCategoryId based on a naming convention for the page? You could include some delimiters in the title or description ie title="fh - Learned Abilities" which tells it what URL and IDs to use based on the "fh" part or similar.

 

No can do; the sitemap is a 3rd party / ms format, that various components are designed to work against.

 

http://msdn.microsoft.com/en-us/library/yy2ykkab.aspx

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...