<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>The Web for You</title><link>http://www.lockworldherald.com/thewebforyou</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TheWebForYou" /><description>Harnessing the power of the Web for personal business, recreation, and communication. In this blog, I will discuss ways to use free or low-cost resources to make your presence known on the Web and increase your personal or professional productivity on a tight budget.</description><language>en</language><lastBuildDate>Mon, 14 Feb 2011 19:57:32 PST</lastBuildDate><generator>http://wordpress.org/?v=3.2.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TheWebForYou" /><feedburner:info uri="thewebforyou" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license><image><link>http://www.lockworldherald.com/thewebforyou</link><url>http://www.lockworldherald.com/images/twfylwh.png</url><title>The Web for You</title></image><feedburner:emailServiceId>TheWebForYou</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FTheWebForYou" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FTheWebForYou" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FTheWebForYou" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/TheWebForYou" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FTheWebForYou" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FTheWebForYou" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FTheWebForYou" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:browserFriendly>In this blog, I will discuss ways to use free or low-cost resources to make your presence known on the Web and increase your personal or professional productivity on a tight budget.</feedburner:browserFriendly><item><title>Wallpaper changer script for Windows XP</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/EfsxVZGzl8Q/</link><category>Downloads</category><category>Level: Intermediate</category><category>Microsoft Windows</category><category>VBScript</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Mon, 14 Feb 2011 19:57:32 PST</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=176</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2011/02/14/wallpaper-changer-script-for-windows-xp/">Wallpaper changer script for Windows XP</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<style>
.black {
  color:#000000;
}</p>
<p>.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}</p>
<p>.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}</p>
<p>.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}</p>
<p>.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>
<p>
<table style="float:right; padding-left:15px;padding-bottom:10px" border="1" cellpadding="5" cellspacing="0">
<th>Download Codes:</th>
</tr>
<tr>
<td>
<ul>
<li><b><a href="http://www.lockworldherald.com/downloads/Wallpaperchanger.zip" target="_blank">WallpaperChanger.zip</a></b></li>
</ul>
<div style="font-size:80%;font-family:sans-serif">Includes:<br/><a href="#WallpaperChanger" alt="Link to code view" title="See the codes included in this VBS file">WallpaperChanger.vbs</a> &#038; <br/><a href="#WallpaperChanger_Config" alt="Link to code view" title="See the codes included in this VBS file">WallpaperChanger_Config.vbs</a></div>
</td>
</tr>
</table>
<p>I&#8217;ve been using a linux-based Asus Eee PC (p701) for several years now, and one of my favorite features available is the desktop wallpaper &#8220;slideshow&#8221; option. I can set up my computer to randomly display a new desktop wallpaper as often as I want. All I have to do is point to the folder(s) the images are stored in and set the frequency, and <i>viola</i> my desktop wallpaper changes <i>&#8220;automagically.&#8221;</i></p>
<p>I&#8217;ve almost given up on wallpapers for my home and office Windows machines, however. While it&#8217;s certainly not hard to change the desktop wallpaper, it&#8217;s not something I like to think about. To be honest, the desktop is always covered by the applications I&#8217;m working in, so I rarely even think about it. But a few months ago, I stumbled across the Microsoft <a href="http://www.microsoft.com/windowsxp/downloads/powertoys/winterfun2003.mspx" target="_blank">Digital Photography Winter Fun Pack 2003</a>. While most of the features are uninteresting to me, one of them caught my eye. The <b>Winter Wallpaper Changer</b> feature automatically changes your desktop wallpaper anywhere from once every 15 minutes to once a week. You can point the program to whatever folder you want that contains the background images. Even better, you can set it up so that on certain days (someone&#8217;s birthday, a holiday, or whatever), you can choose from a different set of wallpaper images!</p>
<p>I installed this application, and was immediately thrilled with how it worked. I like my wallpaper to change very frequently, so I had my wallpaper changed every fifteen minutes throughout the day. I never knew how easy it would be to brighten up my day just by changing my computer&#8217;s wallpaper!</p>
<p>Over the course of the next week, however, my enthusiasm for the application began to fade. I quickly realized that every morning when I logged in to my computer, the wallpaper slideshow started back at the beginning (the first image in my wallpapers folder). Since I rarely see my desktop wallpaper except when I log in or out, this meant that I kept seeing the same image every morning. This sort of defeats the purpose of changing the wallpaper (especially since the first image in my folder was one of my least favorite). I also noticed that every morning when I logged in to my computer, the program didn&#8217;t just start up in the background as I would have expected. Instead, I had to wait while Windows launched the installer program and re-installed (or possibly reconfigured?) the wallpaper changer. When it finished, instead of just running the program in the background, it opened up the user configuration dialog window. So I had to close that down before I could get to work for the day. Not a big deal, but a bit of a nuisance.</p>
<p>To make matters worse, I also realized that, even though I was very excited about the ability to override the wallpaper images on specific days, I was a bit disappointed in this feature overall. It worked exactly as advertised, and I quickly selected pictures to use on Christmas, Halloween, my kids&#8217; birthdays, etc. But then I wondered what I would do for Thanksgiving. Since it doesn&#8217;t fall on the same day every year, I realized I could not have a specific set of wallpapers for that holiday. I also realized that I don&#8217;t always just want a particular wallpaper on a particular day. I thought it would be better to be able to have specific wallpapers for specific <i>months.</i> For October: Halloween pictures. For November: Fall pictures and Thanksgiving pictures. For December: Christmas pictures. For January: Winter pictures. You get the idea.</p>
<p>I quickly fell out of love with the Winter Wallpaper Changer from Microsoft. But I had become quite enamored with the idea of having my desktop wallpaper rotate automatically on a regular basis. So I decided I&#8217;d just go ahead and write my own desktop wallpaper changing script so I could build it the way I wanted it.</p>
<p>Below, I&#8217;ve included the source code for two VBS files (Visual Basic Scripts). These files can be edited with any text editor, but will run when double-clicked. Or, you can set them up as scheduled tasks (as I&#8217;ve done) so that they run automatically in the background on a pre-selected schedule.</p>
<p><b>NOTE:</b> I was not able to find any way to automatically refresh the desktop to apply the new background images. Instead, this program will just select a random picture from your wallpapers folder, copy it to the &#8220;default&#8221; directory for your Windows desktop wallpaper, and update your registry settings to use the new file. You will probably not see a change until you log off the computer and log back on, or until Windows automatically refreshes the desktop (I think it does this about once every four hours).</p>
<p>&nbsp;</p>
<p><b>Try it yourself:</b></p>
<p>For anyone who is interested, I&#8217;ve included the full code for both the WallpaperChanger.vbs and WallpaperChanger_Config.vbs files below. You can copy and paste the codes below into a text editor and save them to your computer (they must be in the same folder to work together). Of, if you prefer, you can <a href="http://www.lockworldherald.com/downloads/Wallpaperchanger.zip">download the zipped folder</a> containing the two script files. Extract the contents to the same folder and they should work as-is.</p>
<p>Don&#8217;t forget to create a scheduled task to run the Wallpaperchanger.vbs script on a regular basis (I recommend only once at every login).</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table align="center" border="1" cellpadding="5px" cellspacing="0px">
<tr valign="top">
<th>WallpaperChanger.vbs<a name="Wallpaperchanger">&nbsp;</a></th>
</tr>
<tr valign="top">
<td><b>Notes:</b> This script, when run, will check for a text file called &#8220;WallpaperChanger Settings.txt&#8221; that holds the configuration settings it uses. If the text file is not found, it will call the WallpaperChanger_Config.vbs script (see code below) to configure and install the &#8220;WallpaperChanger Settings.txt&#8221;</td>
</tr>
<tr valign="top">
<td>
<pre><code>

<span class="codecomment">     ' VBScript File</span>

<span class="codecommand">     Option Explicit</span>

<span class="codecomment">    '--------------------------------------------------------------
    '                   REFERENCES
    '--------------------------------------------------------------
    '
    ' Expected configuration settings file contents should be:
    '       configcontents(0) = "Wallpaper Directory:"
    '       configcontents(1) = {The configured Wallpaper Directory}
    '       configcontents(2) = vbNewLine
    '       configcontents(3) = "Current Wallpaper:"
    '       configcontents(4) = {The currently selected wallpaper filename}
    '       configcontents(5) = vbNewLine
    '       configcontents(6) = "Wallpaper Position:"
    '       configcontents(7) = {The configured wallpaper position}
    '           0 = Center
    '           1 = Tile
    '           2 = Stretch
    '       configcontents(8) = vbNewLine
    '       configcontents(9) = "Include 'My Pictures Slideshow?'"
    '       configcontents(10) = {Yes/No}
    '       configcontents(11) = vbNewLine
    '       configcontents(12) = "Wallpaper Last Changed:"
    '       configcontents(13) = {Timestamp of last change}
    '
    '---------------------------------------------------------------
    '            END REFERENCES
    '---------------------------------------------------------------

     '---------------------------------------------------
     ' Define variables used in script
     '---------------------------------------------------</span>
<span class="codecommand">        Dim _</span>
        colFolders, _
        colSubfolders, _
        configcontents(), _
        configexists, _
        configfilepath, _
        configposition, _
        configslideshow, _
        da, _
        defFile, _
        edate, _
        expLines, _
        extName, _
        file, _
        folderPath, _
        ForAppending, _
        ForReading, _
        ForWriting, _
        foundlines, _
        FSO, _
        i, _
        logcontents, _
        logDirectory, _
        logexists, _
        logFile, _
        logText, _
        max, _
        min, _
        mo, _
        moday, _
        MyFiles, _
        MyFolder, _
        objFile, _
        objFolder, _
        objFSO, _
        objLogFile, _
        objNet, _
        objReadFile, _
        objShell, _
        objStream, _
        objSubfolder, _
        objWallFile, _
        objWMIService, _
        ofolder, _
        oSHApp, _
        scriptPath, _
        sdate, _
        selectedwallpaper, _
        SlideShow, _
        SlideFolder, _
        SPath, _
        strComputer, _
        strDesktop, _
        subFolder, _
        sUserName, _
        sWallPaper, _
        sWinDir, _
        SysFolder, _
        temp, _
        therand, _
        userreply, _
        varPathCurrent, _
        wallDirectory, _
        wallFile, _
        wallText

<span class="codecomment">    '-------------------------
    ' Set script-level variables
    '-------------------------
        ' Create the File System Objects</span>
        <span class="codecommand">Set</span> FSO = CreateObject(<span class="codestring">"Scripting.FileSystemObject"</span>)
        <span class="codecommand">Set</span> objFSO = CreateObject(<span class="codestring">"Scripting.FileSystemObject"</span>)
        <span class="codecommand">Set</span> objNet = CreateObject(<span class="codestring">"WScript.Network"</span>)
        <span class="codecommand">Set</span> objShell = CreateObject(<span class="codestring">"WScript.Shell"</span>)
        <span class="codecommand">Set</span> oSHApp = CreateObject(<span class="codestring">"Shell.Application"</span>)

        strComputer = "."
        <span class="codecommand">Set</span> objWMIService = GetObject(<span class="codestring">"winmgmts:"</span> _
            &#038; <span class="codestring">"{impersonationLevel=impersonate}!\\"</span> &#038; strComputer &#038; <span class="codestring">"\root\cimv2"</span>)

        <span class="codecomment">' Assign the file open/read variables
        ' (That won't be changed later in the program)</span>
        ForAppending = 8
        ForReading = 1
        ForWriting = 2
        <span class="codecomment">' ForWriting will delete the existing contents before writing to the file

        ' Set the path to the default wallpaper.</span>
        SPath = <span class="codestring">"C:\Documents and Settings\"</span> &#038; objNet.UserName _
        &#038; <span class="codestring">"\Local Settings\Application Data\Microsoft"</span>

        <span class="codecomment">' Find the path the the current WallpaperChanger script.</span>
        scriptPath = Left(WScript.ScriptFullName, InstrRev(WScript.ScriptFullName, _
        WScript.ScriptName) -1)

        <span class="codecomment">' This is the path where the configuration settings file will be
        ' found (or created).</span>
        wallDirectory = scriptPath

        <span class="codecomment">' Assigns the filename and path to search for or create the configuration
        ' settings file</span>
        wallFile = <span class="codestring">"WallpaperChanger Settings.txt"</span>

        <span class="codecomments">' Date variables</span>
        mo = Month(Now())
        da = Day(Now())
        <span class="codecommand">if</span> (mo<10) <span class="codecommand">then</span>
            mo = <span class="codestring">"0"</span> &#038; mo
        <span class="codecommand">else</span>
            mo = <span class="codestring">""</span> &#038; mo
        <span class="codecommand">end if</span>
        <span class="codecommand">if</span> (da<10) <span class="codecommand">then</span>
            da = <span class="codestring">"0"</span> &#038; da
        <span class="codecommand">else</span>
            da = <span class="codestring">""</span> &#038; da
        <span class="codecommand">end if</span>

    <span class="codecommand">On Error Resume Next</span>
    Err.Clear

    <span class="codecomment">'-------------------------
    ' Read the contents of the configuration settings file (or create a new file)
    '-------------------------
        ' Call a function to read the contents of the configuration settings file
        ' (or create one if it does not exist or if it is invalid).</span>
        GetSetConfigFile()

    <span class="codecomment">'-------------------------
    ' Call the Verify function to determine whether the configuration settings file
    ' was built correctly.
    '-------------------------</span>
        VerifyConfigSettingsFileLines

    <span class="codecomment">'-------------------------
    ' If file verifies, call a function to read it. Otherwise, call a
    ' function to re-create the file.
    '-------------------------</span>
        <span class="codecommand">if</span> (explines = foundlines) <span class="codecommand">then</span>
            <span class="codecomment">' If the file passes verification, read the file</span>
            ReadWallFile

        <span class="codecommand">else</span>
            <span class="codecomment">' If size indicates an error in wallFile, call CreateConfigurationSettingsFile
            ' function to recreate it.</span>
            WScript.Echo <span class="codestring">"An error has occured with the configuration file: "</span> _
            &#038; vbNewLine &#038; wallDirectory &#038; wallFile &#038; vbNewLine _
            &#038; <span class="codestring">"Executing built-in pause for 5 seconds to rebuild file."</span>
            WScript.Sleep(2500)
            <span class="codecomment">' I kept running into problems with the file still being seen as opened
            ' by this script when I tried to recreate it. So I adding this message
            ' box and built-in hold to ensure the file was properly closed before
            ' trying to re-create it.</span>

            ModifyConfigurationSettingsfile

        <span class="codecommand">end if</span>

    <span class="codecomment">'-------------------------
    ' Choose the new wallpaper
    '-------------------------
        ' Call a function to randomly select a new wallpaper for the user.</span>
        SelectNewWallpaper

    <span class="codecomment">'-------------------------
    ' Set the new wallpaper
    '-------------------------
        ' Call a function to set the user's new wallpaper in the Registry.
        '   NOTE: The new wallpaper will not be displayed until the screen is refreshed
        ' (every 3-4 hours, logging in, logging out, locking the screen, etc.)</span>
        SetUserWallpaper

    <span class="codecomment">' Exit the application</span>
    WScript.Quit

    <span class="codecomment">'------------------------------------------
    '     FUNCTIONS
    '------------------------------------------</span>

    Function GetSetConfigFile ()
        <span class="codecomment">' This function reads the contents of the Wallpaper Changer Configuration
        ' settings file. If no settings file exists, the user is prompted to create
        ' a new configuration settings file.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecomment">'---------------------
        ' Look for the configuration settings file.
        '   If no configuration settings file exists, create and configure one now.
        '---------------------</span>
            <span class="codecommand">if</span> objFSO.FolderExists(wallDirectory) <span class="codecommand">then</span>
                <span class="codecommand">Set</span> objFolder = objFSO.GetFolder(wallDirectory)
                <span class="codecomment">' This is redundant, as the configuration settings file path is
                '  automatically the path to this script itself. But I left it in in
                '  case I decide to allow the user to store the configuration
                '   settings file in a different location someday.</span>
            <span class="codecommand">else</span>
                <span class="codecommand">Set</span> objFolder = objFSO.CreateFolder(wallDirectory)
                <span class="codecomment">' If the configuration settings file's parent folder does not exist,
                '  it will be created here. 

                '-------------------------
                ' OPTION: Uncomment the 2 lines below if you want the script to notify the
                '  user that the folder was created.
                '-------------------------
                '    WScript.Echo "Successfully installed configuration directory: " _
                '     &#038; wallDirectory</span>

            <span class="codecommand">end if</span>

            <span class="codecomment">' In either case above, the folder exists.
            ' Now, we look for the file itself.
            ' If it doesn't exist, we'll create it now and call the configuration
            '  function to prompt the user for input.</span>
            <span class="codecommand">if NOT</span>(objFSO.FileExists(wallDirectory &#038; wallFile)) <span class="codecommand">then</span>
                CreateConfigurationSettingsFile
                <span class="codecomment">' Call the function that creates the configuration settings file.
                '   NOTE: The CreateConfigurationSettingsFile will, in turn, call a
                '     separate script which will allow the user to review and modify
                '     the configuration settings for the program.
                '     Upon successful completion of the script, configexists
                '     variable is set to true.</span>

            <span class="codecommand">end if</span>

        <span class="codecommand">Set</span> objFile = <span class="codecommand">Nothing</span>
        <span class="codecommand">Set</span> objFolder = <span class="codecommand">Nothing</span>

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> VerifyConfigSettingsFileLines ()
        <span class="codecomment">' This function will read the number of lines in the configuration
        '  settings file. If the number of lines in the file matches the number of
        '  expected lines, we can assume the configuration settings file was
        '  written correctly.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecomment">'-------------------------
        ' Set the number of lines you expect to see in the configuration
        '  settings file.
        '-------------------------</span>
            foundlines = 0
            explines = 14
            <span class="codecomment">'-------------------------
            ' Count the number of lines in the existing configuration settings file
            '-------------------------</span>
                <span class="codecommand">Set</span> objWallFile = objFSO.OpenTextFile (wallDirectory _
                  &#038; wallFile, ForReading)
                i = 0
                <span class="codecommand">Do Until</span> objWallFile.AtEndOfStream
                temp = objWallFile.ReadLine
                i=i+1
                <span class="codecommand">Loop</span>
                objWallFile.close
                <span class="codecommand">set</span> objWallFile = <span class="codecommand">Nothing</span>

                <span class="codecomment">' Store the number of lines found into a variable for later use</span>
                foundlines = i

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> ReadWallFile ()
        <span class="codecomment">' This function will read the configuration settings file and store each
        '  line in the array configcontents.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecomment">' If configuration settings file exists and passes verification, read it</span>
        <span class="codecommand">Set</span> objWallFile = objFSO.OpenTextFile (wallDirectory &#038; wallFile, ForReading)
        i=0

        <span class="codecomment">'Save each line into an array variable</span>
        <span class="codecommand">Do Until</span> objWallFile.AtEndOfStream
            <span class="codecommand">Redim Preserve</span> configcontents(i)
            configcontents(i) = objWallFile.ReadLine
            i=i+1
        <span class="codecommand">Loop</span>

        <span class="codecomment">' Close the file</span>
        objWallFile.close
        <span class="codecommand">Set</span> objWallFile = <span class="codecommand">Nothing</span>

        <span class="codecommand">if</span> (configcontents(1) > <span class="codestring">""</span> AND configcontents(7) > <span class="codestring">""</span> _
          AND configcontents(10) > <span class="codestring">""</span>) <span class="codecommand">then</span>
            configfilepath = configcontents(1)
            configposition = configcontents(7)
            configslideshow = configcontents(10)
            <span class="codecommand">' If file exists, passes verification, and contains acceptable entries,
            '  let the program know it exists.</span>
            configexists = <span class="codecommand">true</span>
        <span class="codecommand">else</span>
            configexists = <span class="codecommand">false</span>
        <span class="codecommand">end if</span>

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> CreateConfigurationSettingsFile()
        <span class="codecomment">' This function will create a new configuration settings file and call a
        '   separate script to allow the user to review and modify
        '   the configuration settings for the program.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecommand">Set</span> objWallFile = objFSO.CreateTextFile (wallDirectory &#038; wallFile, ForWriting)
        objWallFile.WriteLine(<span class="codestring">"Wallpaper Directory:"</span>)
        objWallFile.WriteLine(<span class="codestring">"C:\Documents and Settings\"</span> &#038; objNet.UserName _
            &#038; <span class="codestring">"\My Documents\My Pictures"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">"Current Wallpaper:"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">"Wallpaper Position:"</span>)
        objWallFile.WriteLine(<span class="codestring">"2"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">"Include My Pictures Slideshow?"</span>)
        objWallFile.WriteLine(<span class="codestring">"No"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">"Wallpaper Last Changed:"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)

        ModifyConfigurationSettingsFile
        <span class="codecomment">' Calls a separate script to allow the user to review and modify the
        '   configuration settings for the program.</span>

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> ModifyConfigurationSettingsFile()
        <span class="codecomment">' This function will call an external script to allow the user to review
        '   and modify the configuration settings file.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        temp = <span class="codestring">""""</span> &#038; scriptPath &#038; <span class="codestring">"\WallpaperChanger_Config.vbs"""</span>
        objShell.Run(temp)

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> SelectNewWallpaper()
        <span class="codecomment">' This function will find an appropriate wallpaper based on the user's
        '   preferred directory and any date-specific wallpaper preferences.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecommand">if</span> (configexists = true) <span class="codecommand">then</span>
            <span class="codecomment">' Verify that the selected wallpaper directory actually exists.
            '   If not, then give user the option to adjust settings or quit program</span>
            <span class="codecommand">If</span> objFSO.FolderExists(configfilepath) <span class="codecommand">then</span>
                <span class="codecommand">Set</span> SysFolder = FSO.GetFolder(configfilepath)
            <span class="codecommand">else</span>
                userreply = msgbox(<span class="codestring">"Unable to find the selected wallpaper directory. "</span> _
                    &#038; <span class="codestring">"Would you like to change your wallpaper changer "</span> _
                    &#038; <span class="codestring">"settings now?"</span>, vbYesNo)

                <span class="codecommand">if</span> (userreply = 6) <span class="codecommand">then</span>
                    <span class="codecomment">' If user agrees, call the configuration script to modify settings.</span>
                    ModifyConfigurationSettingsFile

                <span class="codecommand">end if</span>

                <span class="codecomment">' Quit this script (will be re-run if/when user
                '   modifies configuration settings file).</span>
                WScript.Quit

            <span class="codecommand">end if</span>

            <span class="codecommand">Set</span> MyFolder = FSO.GetFolder(configfilepath)
            folderPath = configfilepath

            <span class="codecomment">'-------------------------
            ' Check for special "override" folder for a particular month, a
            '   particular day, or a particular date range
            '-------------------------</span>
                <span class="codecommand">Set</span> MyFolder = FSO.GetFolder(configfilepath)
                folderPath = configfilepath
                <span class="codecomment">' Sets the default folder for images
                '   (in case folder selected below has no files).

                ' If a folder exists for a specific month...</span>
                    <span class="codecommand">if</span> (objFSO.FolderExists(configfilepath &#038; "\" &#038; mo)) <span class="codecommand">then</span>
                        <span class="codecomment">' If no images in this folder, use the default folder</span>
                        <span class="codecommand">Set</span> temp = FSO.GetFolder(configfilepath &#038; <span class="codestring">"\"</span> &#038; mo)
                        <span class="codecommand">if</span> (temp.Files.Count > 0) <span class="codecommand">then</span>
                            <span class="codecommand">Set</span> MyFolder = FSO.GetFolder(configfilepath &#038; <span class="codestring">"\"</span> &#038; mo)
                            folderPath = configfilepath &#038; <span class="codestring">"\"</span> &#038; mo
                            moday = mo
                        <span class="codecommand">end if</span>
                    <span class="codecommand">end if</span>

                <span class="codecomment">' If a folder exists for a specific date range...</span>
                    <span class="codecommand">Set</span> objFolder = objFSO.GetFolder(configfilepath)
                    <span class="codecommand">Set</span> colSubfolders = objFolder.Subfolders
                    <span class="codecommand">For Each</span> objSubfolder <span class="codecommand">in</span> colSubfolders
                        <span class="codecommand">if</span> (instr(1,objSubfolder.Name,<span class="codestring">"-"</span>) > 0) <span class="codecommand">then</span>
                            sdate = left(objSubfolder.Name, instr(1, _
                                objSubfolder.Name,<span class="codestring">"-"</span>)-1)
                            edate = right(objSubfolder.Name, InstrRev(_
                               objSubfolder.Name, <span class="codestring">"-"</span>)-1)
                            <span class="codecommand">if</span> ((mo &#038; <span class="codestring">"_"</span> &#038; da) >= sdate _
                               <span class="codecommand">AND</span> (mo &#038; <span class="codestring">"_"</span> &#038; da) <= edate) <span class="codecommand">then</span>
                                <span class="codecomment">' If no images in this folder, use the default folder</span>
                                <span class="codecommand">Set</span> temp = FSO.GetFolder(configcontents(1) _
                                    &#038; <span class="codestring">"\"</span> &#038; objSubfolder.Name)
                                <span class="codecommand">if</span> (temp.Files.Count > 0) <span class="codecommand">then</span>
                                    <span class="codecommand">Set</span> MyFolder = FSO.GetFolder(configcontents(1) _
                                       &#038; <span class="codestring">"\"</span> &#038; objSubfolder.Name)
                                    folderPath = configcontents(1) &#038; <span class="codestring">"\"</span> _
                                       &#038; objSubfolder.Name
                                    moday = objSubfolder.Name
                                <span class="codecommand">end if</span>
                            <span class="codecommand">end if
                        end if
                    Next</span>

                <span class="codecomment">' If a folder exists for a specific day...</span>
                    <span class="codecomment">if</span> (objFSO.FolderExists(configfilepath &#038; <span class="codestring">"\"</span> &#038; mo &#038; <span class="codestring">"_"</span> &#038; da)) <span class="codecommand">then</span>
                        <span class="codecomment">' If no images in this folder, use the default folder</span>
                        <span class="codecommand">Set</span> temp = FSO.GetFolder(configfilepath &#038; <span class="codestring">"\"</span> &#038; mo _
                           &#038; <span class="codestring">"_"</span> &#038; da)
                        <span class="codecommand">if</span> (temp.Files.Count > 0) <span class="codecommand">then</span>
                            <span class="codecommand">Set</span> MyFolder = FSO.GetFolder(configfilepath &#038; <span class="codestring">"\"</span> &#038; mo _
                               &#038; <span class="codestring">"_"</span> &#038; da)
                            folderPath = configcontents(1) &#038; <span class="codestring">"\"</span> &#038; mo &#038; <span class="codestring">"_"</span> &#038; da
                            moday = mo &#038; <span class="codestring">"_"</span> &#038; da
                        <span class="codecommand">end if
                    end if</span>

            <span class="codecomment">'-------------------------
            ' Select a random picture to use for the wallpaper
            '-------------------------</span>
                max = MyFolder.Files.Count
                min = 1
                Randomize
                therand = <span class="codecommand">Int</span>((max-min+1) * Rnd+min)

                temp = <span class="codestring">""</span>
                i = 0

                <span class="codecomment">' Select a file with qualifying extension</span>
                <span class="codecommand">For each</span> file <span class="codecommand">in</span> MyFolder.Files
                    i = i+1
                    extName = right(file.Name, 3)
                    <span class="codecommand">if</span> (extName=<span class="codestring">"jpg"</span> <span class="codecommand">OR</span> extName=<span class="codestring">"JPG"</span> <span class="codecommand">OR</span> extName=<span class="codestring">"bmp"</span> _
                       <span class="codecommand">OR</span> extName=<span class="codestring">"BMP"</span> <span class="codecommand">OR</span> extName=<span class="codestring">"gif"</span> _
                       <span class="codecommand">OR</span> extName=<span class="codestring">"GIF"</span>) <span class="codecommand">then</span>
                        <span class="codecomment">' Get first file as default file</span>
                        <span class="codecommand">if</span> (temp=<span class="codestring">""</span>) <span class="codecommand">then</span>
                            temp = file.Name
                            defFile = file.Name
                        <span class="codecommand">end if</span>

                        <span class="codecommand">if</span> (i=therand) <span class="codecommand">then</span>
                            temp = file.Name
                        <span class="codecommand">end if
                    else
                        if</span> (i=therand) <span class="codecommand">then</span>
                            min=i+1
                            Randomize
                            therand = <span class="codecommand">Int</span>((max-min+1)*Rnd+min)
                        <span class="codecommand">end if
                    end if

                Next

                if</span> (temp=<span class="codestring">""</span>) <span class="codecommand">then</span>
                    selectedwallpaper = defFile
                <span class="codecommand">else</span>
                    selectedwallpaper = temp
                <span class="codecommand">end if

        else</span>
            WScript.Quit
            <span class="codecomment">' Application has failed.</span>
        <span class="codecommand">end if</span>

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> SetUserWallpaper()
        <span class="codecomment">' This function changes the registry settings to select the
        '  new wallpaper and other user preferences from the configuration
        '  settings file.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecommand">if</span> (isnull(selectedwallpaper) <span class="codecommand">OR</span> selectedwallpaper = <span class="codestring">""</span>) <span class="codecommand">then</span>
            msgbox(<span class="codestring">"No wallpaper found in "</span> &#038; folderPath &#038; <span class="codestring">"\"</span> _
               &#038; selectedwallpaper)
        <span class="codecommand">else</span>
            <span class="codecomment">' Remove existing wallpaper file(s)</span>
            <span class="codecommand">if</span> objFSO.FileExists(SysFolder &#038; <span class="codestring">"\Wallpaper1.bmp"</span>) <span class="codecommand">then</span>
                objFSO.DeleteFile SysFolder &#038; <span class="codestring">"\Wallpaper1.bmp"</span>
            <span class="codecommand">end if</span>

            <span class="codecommand">if</span> objFSO.FileExists(SysFolder &#038; <span class="codestring">"\Wallpaper1.jpg"</span>) <span class="codecommand">then</span>
                objFSO.DeleteFile SysFolder &#038; <span class="codestring">"\Wallpaper1.jpg"</span>
            <span class="codecommand">end if</span>

            <span class="codecommand">if</span> objFSO.FileExists(SysFolder &#038; <span class="codestring">"\Wallpaper1.gif"</span>) <span class="codecommand">then</span>
                objFSO.DeleteFile SysFolder &#038; <span class="codestring">"\Wallpaper1.gif"</span>
            <span class="codecommand">end if</span>

            objFSO.CopyFile folderPath &#038; <span class="codestring">"\"</span> &#038; selectedwallpaper , SPath _
               &#038; <span class="codestring">"\"</span> &#038; <span class="codestring">"Wallpaper1."</span> &#038; right(selectedwallpaper, 3)

            <span class="codecomment">' Update the settings file</span>
            <span class="codecommand">Set</span> objWallFile = objFSO.CreateTextFile (wallDirectory _
               &#038; wallFile, ForWriting)

            objWallFile.WriteLine(<span class="codestring">"Wallpaper Directory:"</span>)
            objWallFile.WriteLine(configfilepath)
            objWallFile.WriteLine(<span class="codestring">""</span>)
            objWallFile.WriteLine(<span class="codestring">"Current Wallpaper:"</span>)
            <span class="codecommand">if</span> (configfilepath = folderPath) <span class="codecommand">then</span>
                objWallFile.WriteLine(selectedwallpaper)
            <span class="codecommand">else</span>
                objWallFile.WriteLine(moday &#038; <span class="codestring">"\"</span> &#038; selectedwallpaper)
            <span class="codecommand">end if</span>
            objWallFile.WriteLine(<span class="codestring">""</span>)
            objWallFile.WriteLine(<span class="codestring">"Wallpaper Position:"</span>)
            objWallFile.WriteLine(configposition)
            objWallFile.WriteLine(<span class="codestring">""</span>)
            objWallFile.WriteLine(<span class="codestring">"Include 'My Pictures Slideshow?'"</span>)
            objWallFile.WriteLine(configslideshow)
            objWallFile.WriteLine(<span class="codestring">""</span>)
            objWallFile.WriteLine(<span class="codestring">"Wallpaper Last Changed:"</span>)
            objWallFile.WriteLine(Now())

            objWallFile.close
            <span class="codecommand">Set</span> objWallFile = <span class="codecommand">Nothing</span>

            <span class="codecomment">' Set the selected wallpaper as the Windows desktop wallpaper</span>
            sWallPaper = SPath &#038; <span class="codestring">"\"</span> &#038; <span class="codestring">"Wallpaper1."</span> &#038; right(temp, 3)

            <span class="codecomment">' update in registry</span>
            objShell.RegWrite <span class="codestring">"HKCU\Control Panel\Desktop\Wallpaper"</span>, _
               sWallPaper
            <span class="codecommand">if</span> (configposition=1) <span class="codecommand">then</span>
                objShell.RegWrite <span class="codestring">"HKCU\Control Panel\Desktop\TileWallpaper"</span>, 1
            <span class="codecommand">else</span>
                objShell.RegWrite <span class="codestring">"HKCU\Control Panel\Desktop\TileWallpaper"</span>, 0
            <span class="codecommand">end if</span>
            <span class="codecommand">if</span> (wallPosition > -1 <span class="codecommand">AND</span> wallPosition < 3) <span class="codecommand">then</span>
               objShell.RegWrite <span class="codestring">"HKCU\Control Panel\Desktop\WallpaperStyle"</span>, _
                   configposition
            <span class="codecommand">else</span>
               objShell.RegWrite <span class="codestring">"HKCU\Control Panel\Desktop\WallpaperStyle"</span>, 2
            <span class="codecommand">end if</span>

            <span class="codecommand">if</span> (configslideshow=<span class="codestring">"Yes"</span>) <span class="codecommand">then</span>
                objShell.RegWrite <span class="codestring">"HKEY_CURRENT_USER\Control Panel\"</span> _
                    &#038; <span class="codestring">"Screen Saver.Slideshow\ImageDirectory"</span>, FolderPath

            <span class="codecommand">end if</span>
            <span class="codecomment">' let the system know about the change</span>
            objShell.Run <span class="codestring">"%windir%\System32\RUNDLL32.EXE "</span> _
               &#038; <span class="codestring">"user32.dll,UpdatePerUserSystemParameters"</span>, 1,<span class="codecommand">True</span>

        <span class="codecommand">end if</span>

    <span class="codecommand">End Function</span>

</code></pre>
</td>
</tr>
</table>
<p>&nbsp;</p>
<table align="center" border="1" cellpadding="5px" cellspacing="0px">
<tr valign="top">
<th>WallpaperChanger_Config.vbs<a name="WallpaperChanger_Config">&nbsp;</a></th>
</tr>
<tr valign="top">
<td><b>Notes:</b> This script, when run, will create or update a text file called &#8220;WallpaperChanger Settings.txt&#8221; that holds the configuration settings used by &#8220;WallpaperChanger.vbs.&#8221; The user settings control which directory holds the wallpaper, which image folder to use, and whether or not the same directory should be used for the Windows Slideshow screensaver.</td>
</tr>
<tr valign="top">
<td>
<pre><code>

    <span class="codecomment">' VBScript File</span>

     <span class="codecommand">Option Explicit</span>

    <span class="codecommand">Dim</span> _
    configcontents(), _
    configexists, _
    configfilepath, _
    configimage, _
    configposition, _
    configslideshow, _
    currentImage, _
    defFile, _
    explines, _
    extName, _
    file, _
    ForAppending, _
    ForReading, _
    ForWriting, _
    foundlines, _
    FSO, _
    i, _
    logcontents, _
    logDirectory, _
    logexists, _
    logFile, _
    logText, _
    MyFolder, _
    MyFiles, _
    objFile, _
    objFolder, _
    objFSO, _
    objLogFile, _
    objNet, _
    objReadFile, _
    objShell, _
    objStream, _
    objWallFile, _
    ofolder, _
    oldFilePath, _
    oSHApp, _
    scriptPath, _
    SPath, _
    strComputer, _
    strDesktop, _
    sUserName, _
    sWinDir, _
    sWallPaper, _
    SysFolder, _
    temp, _
    uinput, _
    userPath, _
    userFile, _
    wallDirectory, _
    wallFile, _
    wallText

    <span class="codecomment">'-------------------------
    ' Set script-level variables
    '-------------------------
        ' Create the File System Objects</span>
        <span class="codecommand">Set</span> FSO = CreateObject(<span class="codestring">"Scripting.FileSystemObject"</span>)
        <span class="codecommand">Set</span> objFSO = CreateObject(<span class="codestring">"Scripting.FileSystemObject"</span>)
        <span class="codecommand">Set</span> objNet = CreateObject(<span class="codestring">"WScript.Network"</span>)
        <span class="codecommand">Set</span> objShell = CreateObject(<span class="codestring">"WScript.Shell"</span>)
        <span class="codecommand">Set</span> oSHApp = CreateObject(<span class="codestring">"Shell.Application"</span>)

        <span class="codecomment">' Assign the file open/read variables
        '   (That won't be changed later in the program)</span>
        ForAppending = 8
        ForReading = 1
        ForWriting = 2
            <span class="codecomment">' ForWriting will delete the existing contents before
            '   writing to the file

        ' Find the path the the current
        '   WallpaperChanger script.</span>
        scriptPath = Left(WScript.ScriptFullName, _
           InstrRev(WScript.ScriptFullName, _
           WScript.ScriptName) -1)

        <span class="codecomment">' This is the path where the configuration settings file
        '   will be found (or created).</span>
        wallDirectory = scriptPath

        <span class="codecomment">' Assigns the filename and path to search for or
        '   create the configuration settings file</span>
        wallFile = <span class="codestring">"WallpaperChanger Settings.txt"</span>

    <span class="codecomment">'-------------------------
    ' Read the contents of the configuration settings file
    '   (or create a new file)
    '-------------------------
        ' Call a function to read the contents of the
        '   configuration settings file (or create one if it
        '   does not exist or if it is invalid.</span>
        GetSetConfigFile()

    <span class="codecomment">'-------------------------
    ' Call the Verify function to determine whether the
    '   configuration settings file was built correctly.
    '-------------------------</span>
        VerifyConfigSettingsFileLines

    <span class="codecomment">'-------------------------
    ' If file verifies, call a function to read it. Otherwise,
    '   call a function to re-create the file.
    '-------------------------</span>
        <span class="codecommand">if</span> (explines <> foundlines) <span class="codecommand">then</span>
            <span class="codecomment">' If size indicates an error in wallFile, call
            '   CreateConfigurationSettingsFile function to
            '   recreate it</span>
            WScript.Echo <span class="codestring">"An error has occured with the"</span> _
                &#038; <span class="codestring">"configuration file: "</span> &#038; vbNewLine &#038; wallDirectory _
                &#038; wallFile &#038; vbNewLine &#038; <span class="codestring">"Executing built-in"</span> _
                &#038; <span class="codestring">" pause for 5 seconds to rebuild file."</span>
            WScript.Sleep(2500)

            CreateConfigurationSettingsFile

        <span class="codecommand">end if</span>

        <span class="codecommand">if</span> (explines = foundlines) <span class="codecommand">then</span>
            <span class="codecomment">' If the file passes verification, read the file</span>
            ReadWallFile

        <span class="codecommand">else</span>
            <span class="codecomment">'-------------------------
            ' OPTION: Uncomment the 3 lines below to include
            '   a failure message before quitting the application
            '-------------------------
            '    WScript.Echo "The application was not able to" _
            '   &#038; " read or create the configuration file." _
            '   &#038; " Please try again later."

            ' If after two tries, file doesn't verify, quit silently</span>
            WScript.Quit

        <span class="codecommand">end if</span>

      <span class="codecomment">' Prompt user for changes</span>
      GetUserInput

      <span class="codecomment">' Run WallPaperChanger.vbs</span>
      temp = <span class="codestring">""""</span> &#038; scriptPath &#038; <span class="codestring">"\WallpaperChanger.vbs"""</span>
      objShell.Run(temp)

      objWallFile.close
      <span class="codecommand">Set</span> objWallFile = <span class="codecommand">Nothing</span>

      <span class="codecommand">Set</span> objFSO = <span class="codecommand">Nothing</span>
      <span class="codecommand">Set</span> objNet = <span class="codecommand">Nothing</span>
      <span class="codecommand">Set</span> objShell = <span class="codecommand">Nothing</span>
      <span class="codecommand">Set</span> oSHApp = <span class="codecommand">Nothing</span>
      WScript.Quit

    <span class="codecomment">'------------------------------------------
    '     FUNCTIONS
    '------------------------------------------</span>

    <span class="codecommand">Function</span> GetSetConfigFile ()
        <span class="codecomment">' This function reads the contents of the Wallpaper
        '   Changer Configuration settings file.
        '   If no settings file exists, the user is prompted to
        '   create a new configuration settings file.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecomment">'---------------------
        ' Look for the configuration settings file.
        '   If no configuration settings file exists, create and
        '   configure one now.
        '---------------------</span>
            <span class="codecommand">if</span> objFSO.FolderExists(wallDirectory) <span class="codecommand">then</span>
                <span class="codecommand">Set</span> objFolder = objFSO.GetFolder(wallDirectory)
                <span class="codecomment">' Folder exists!
                ' This is redundant, as the configuration settings
                '   file path is automatically the path to this
                '   script itself. But I left it in in case I decide to
                '   allow the user to store the configuration
                '   settings file in a different location someday.</span>
            <span class="codecommand">else</span>
                <span class="codecommand">Set</span> objFolder = objFSO.CreateFolder(wallDirectory)
                <span class="codecomment">' If the configuration settings file's parent folder
                '   does not exist, it will be created here.

                '-------------------------
                ' OPTION: Uncomment the 3 lines below if you
                '   want the script to notify the user that the
                '   folder was created.
                '-------------------------</span>
                '    WScript.Echo <span class="codestring">"Successfully installed" _
                '       &#038; " configuration directory: " _
                '       &#038; wallDirectory</span>

            <span class="codecommand">end if</span>

            <span class="codecomment">' In either case above, the folder exists. Now, we
            '   look for the file itself.
            ' If it doesn't exist, we'll create it now and call the
            '   configuration function to prompt the user for input.</span>
            <span class="codecommand">if NOT</span>(objFSO.FileExists(wallDirectory &#038; wallFile)) <span class="codecommand">then</span>
                CreateConfigurationSettingsFile
                <span class="codecomment">' Call the function that creates the configuration settings file.
                '   NOTE: The CreateConfigurationSettingsFile will, in turn,
                '   call a separate script which will allow the user to
                '   review and modify the configuration settings for the program.
                '   Upon successful completion of the script, configexists
                '   variable is set to true.</span>

            <span class="codecommand">end if</span>

        <span class="codecomment">' Close the file</span>
        objWallFile.close
        <span class="codecommand">Set</span> objWallFile = <span class="codecommand">Nothing</span>

        <span class="codecommand">Set</span> objFile = <span class="codecommand">Nothing</span>
        <span class="codecommand">Set</span> objFolder = <span class="codecommand">Nothing</span>

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> VerifyConfigSettingsFileLines ()
        <span class="codecomment">' This function will read the number of lines in the configuration settings file.
        '   If the number of lines in the file matches the number of expected lines,
        '   we will assume the configuration settings file was written correctly.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecomment">'-------------------------
        ' Set the number of lines you expect to see in the configuration settings file
        '-------------------------</span>
            foundlines = 0
            explines = 14
            <span class="codecomment">'-------------------------
            ' Count the number of lines (i) in the existing configuration settings file
            '-------------------------</span>
                <span class="codecommand">Set</span> objWallFile = objFSO.OpenTextFile (wallDirectory _
                   &#038; wallFile, ForReading)
                i = 0
                <span class="codecommand">Do Until</span> objWallFile.AtEndOfStream
                temp = objWallFile.ReadLine
                i=i+1
                <span class="codecommand">Loop</span>

                <span class="codecomment">' Close the file</span>
                objWallFile.close
                <span class="codecommand">Set</span> objWallFile = <span class="codecommand">Nothing</span>

                <span class="codecomment">' Store the number of lines found into a variable for later use</span>
                foundlines = i

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> ReadWallFile ()
        <span class="codecomment">' This function will read the configuration settings file and store each line in the
        '   array configcontents.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecomment">' If configuration settings file exists and passes verification, read it</span>
        <span class="codecommand">Set</span> objWallFile = objFSO.OpenTextFile (wallDirectory &#038; wallFile, ForReading)
        i=0

        <span class="codecomment">' Save each line into an array variable</span>
        <span class="codecommand">Do Until</span> objWallFile.AtEndOfStream
            <span class="codecommand">Redim Preserve</span> configcontents(i)
            configcontents(i) = objWallFile.ReadLine
            i=i+1
        <span class="codecommand">Loop</span>

        <span class="codecomment">' Close the file</span>
        objWallFile.close
        <span class="codecommand">Set</span> objWallFile = <span class="codecommand">Nothing</span>

        <span class="codecommand">if</span> (configcontents(1) > <span class="codestring">""</span> _
          AND configcontents(7) > <span class="codestring">""</span> AND configcontents(10) > <span class="codestring">""</span>) <span class="codecommand">then</span>
            configfilepath = configcontents(1)
            configposition = configcontents(7)
            configslideshow = configcontents(10)
            configimage = configcontents(3)
            <span class="codecomment">' If file exists, passes verification, and contains acceptable entries,
            '   let the program know it exists</span>
            configexists = <span class="codecommand">true</span>
        <span class="codecommand">else</span>
            configexists = <span class="codecommand">false</span>
        <span class="codecommand">end if</span>

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> CreateConfigurationSettingsFile()
        <span class="codecomment">' This function will create a new configuration settings file and call a
        '   separate script to allow the user to review and modify
        '   the configuration settings for the program.</span>

        <span class="codecommand">On Error Resume Next</span>
        Err.Clear

        <span class="codecommand">Set</span> objWallFile = objFSO.CreateTextFile (wallDirectory &#038; wallFile, ForWriting)
        objWallFile.WriteLine(<span class="codestring">"Wallpaper Directory:"</span>)
        objWallFile.WriteLine(<span class="codestring">"C:\Documents and Settings\"</span> &#038; objNet.UserName _
            &#038; <span class="codestring">"\My Documents\My Pictures"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">"Current Wallpaper:"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">"Wallpaper Position:"</span>)
        objWallFile.WriteLine(<span class="codestring">"2"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">"Include My Pictures Slideshow?"</span>)
        objWallFile.WriteLine(<span class="codestring">"No"</span>)
        objWallFile.WriteLine(<span class="codestring">""</span>)
        objWallFile.WriteLine(<span class="codestring">"Wallpaper Last Changed:"</span>)
        objWallFile.WriteLine(<span class="codestring">"Never"</span>)

        <span class="codecomment">' Close the file</span>
        objWallFile.close
        <span class="codecommand">Set</span> objWallFile = <span class="codecommand">Nothing</span>

        WScript.Sleep 10000

        GetSetConfigFile

        VerifyConfigSettingsFileLines

    <span class="codecommand">End Function</span>

    <span class="codecommand">Function</span> GetUserInput()

        <span class="codecomment">' This function uses Internet Explorer to
        ' create a dialog and prompt for user input.
        '
        ' Version:             2.10
        ' Last modified:       2010-09-28
        '
        ' Argument:   [string] prompt text, e.g. "Please enter your name:"
        ' Returns:    [string] the user input typed in the dialog screen
        '
        ' Written by Rob van der Woude
        ' <a href="http://www.robvanderwoude.com" class="codecomment" target="_blank">http://www.robvanderwoude.com</a>
        ' Error handling code written by Denis St-Pierre</span>
            <span class="codecommand">Dim</span> objIE

            <span class="codecomment">' Create an IE object</span>
            <span class="codecommand">Set</span> objIE = CreateObject( <span class="codestring">"InternetExplorer.Application"</span> )

            <span class="codecomment">' Specify some of the IE window's settings</span>
            objIE.Navigate <span class="codestring">"about:blank"</span>
            objIE.Document.Title = <span class="codestring">"Wallpaper Changer Configuration"</span>
            objIE.ToolBar        = <span class="codecommand">False</span>
            objIE.Resizable      = <span class="codecommand">True</span>
            objIE.StatusBar      = <span class="codecommand">False</span>
            objIE.Width          = 700
            objIE.Height         = 500

            <span class="codecomment">' Center the dialog window on the screen</span>
            <span class="codecommand">With</span> objIE.Document.ParentWindow.Screen
                objIE.Left = (.AvailWidth  - objIE.Width ) \ 2
                objIE.Top  = (.Availheight - objIE.Height) \ 2
            <span class="codecommand">End With</span>

            <span class="codecomment">' Precompile combo boxes to use correctly selected data</span>
            <span class="codecommand">dim</span> ttov1, ttov2, ttov3
            ttov1 = <span class="codestring">""</span>
            ttov2 = <span class="codestring">""</span>
            ttov3 = <span class="codestring">""</span>
            <span class="codecommand">if</span> (configposition = <span class="codestring">"0"</span>) then
                ttov1 = <span class="codestring">" selected"</span>
            <span class="codecommand">end if</span>
            <span class="codecommand">if</span> (configposition = <span class="codestring">"1"</span>) <span class="codecommand">then</span>
                ttov2 = <span class="codestring">" selected"</span>
            <span class="codecommand">end if</span>
            <span class="codecommand">if</span> (configposition = <span class="codestring">"2"</span>) <span class="codecommand">then</span>
                ttov3 = <span class="codestring">" selected"</span>
            <span class="codecommand">end if</span>

            <span class="codecommand">dim</span> ss
            ss = <span class="codestring">""</span>

            <span class="codecommand">if</span> (configslideshow = <span class="codestring">"Yes"</span>) <span class="codecommand">then</span>
                ss = <span class="codestring">" selected"</span>
            <span class="codecommand">end if</span>

            <span class="codecomment">' Wait till IE is ready</span>
            <span class="codecommand">Do While</span> objIE.Busy
                WScript.Sleep 200
            <span class="codecommand">Loop</span>
            <span class="codecomment">' Insert the HTML code to prompt for user input</span>
            objIE.Document.Body.InnerHTML = <span class="codestring">"&lt;div align=""left""&gt;&lt;h4&gt;Custom Wallpaper "</span> _
               &#038; <span class="codestring">"Configuration Settings:&lt;/h4&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"&lt;p&gt;&lt;b&gt;Enter the path to your wallpapers folder: &lt;/b&gt;&lt;br/&gt;&lt;input "</span> _
               &#038; <span class="codestring">"type=""text"" size=""20"" "</span> _
               &#038; <span class="codestring">"id=""UserPath"" value="""</span> &#038; configfilepath &#038; <span class="codestring">"""&gt;&lt;/p&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"&lt;p&gt;&lt;b&gt;Select how you want your wallpaper to appear: "</span> _
               &#038; <span class="codestring">"&lt;/b&gt;&lt;br/&gt;"</span> _
               &#038; <span class="codestring">"&lt;select id=""TileType"" value="""</span> &#038; configposition &#038; <span class="codestring">"""&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"  &lt;option value=""0"""</span> &#038; ttov1 &#038; <span class="codestring">"&gt;Center&lt;/option&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"  &lt;option value=""1"""</span> &#038; ttov2 &#038; <span class="codestring">"&gt;Tile&lt;/option&gt;"</span> _
               &#038; vbCrLf &#038; <span class="codestring">"  &lt;option value=""2"""</span> &#038; ttov3 _
               &#038; <span class="codestring">"&gt;Stretch&lt;/option&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"&lt;/select&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"&lt;p&gt;&lt;b&gt;Use the same directory for the ""My Pictures Slideshow"" "</span> _
               &#038; <span class="codestring">"screensaver?&lt;/b&gt;&lt;br/&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"&lt;select id=""Slideshow"" value="""</span> &#038; configslideshow _
               &#038; <span class="codestring">"""&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"  &lt;option value=""No""&gt;No&lt;/option&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"  &lt;option value=""Yes"""</span> &#038; ss &#038; <span class="codestring">"&gt;Yes&lt;/option"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"&lt;/select&gt;&lt;/p&gt;"</span> &#038; vbCrLf _
               &#038; <span class="codestring">"&lt;p&gt;&lt;input type=""hidden"" id=""OK"" "</span> _
               &#038; <span class="codestring">"name=""OK"" value=""0""&gt;&lt;br/&gt;"</span> _
               &#038; <span class="codestring">"&lt;input type=""submit"" value="" OK "" "</span> _
               &#038; <span class="codestring">"OnClick=""VBScript:OK.Value=1""&gt;&lt;/p&gt;&lt;/div&gt;"</span>
            <span class="codecomment">' Hide the scrollbars</span>
            objIE.Document.Body.Style.overflow = <span class="codestring">"auto"</span>
            <span class="codecomment">' Make the window visible</span>
            objIE.Visible = <span class="codecommand">True</span>
            <span class="codecomment">' Set focus on input field</span>
            objIE.Document.All.UserPath.Focus

            <span class="codecomment">' Wait till the OK button has been clicked</span>
            <span class="codecommand">On Error Resume Next</span>
            <span class="codecommand">Do While</span> objIE.Document.All.OK.Value = 0
                WScript.Sleep 200
                <span class="codecomment">' Error handling code by Denis St-Pierre</span>
                <span class="codecommand">If</span> Err <span class="codecommand">Then</span>
                <span class="codecomment">' user clicked red X (or alt-F4) to close IE window</span>
                    IELogin = Array( <span class="codestring">""</span>,<span class="codestring"> ""</span> )
                    objIE.Quit
                    <span class="codecommand">Set</span> objIE = <span class="codecommand">Nothing</span>
                    <span class="codecommand">Exit Function</span>
                <span class="codecommand">End if</span>
            <span class="codecommand">Loop</span>
            <span class="codecommand">On Error Goto</span> 0

            <span class="codecomment">' Read the user input from the dialog window
            ' and save it to the settings file</span>

            <span class="codecommand">Set</span> objWallFile = objFSO.CreateTextFile (wallDirectory &#038; wallFile, <span class="codecommand">True</span>)

            objWallFile.WriteLine(<span class="codestring">"Wallpaper Directory:"</span>)
            objWallFile.WriteLine(objIE.Document.All.UserPath.Value)
            objWallFile.WriteLine(<span class="codestring">""</span>)
            objWallFile.WriteLine(<span class="codestring">"Current Wallpaper:"</span>)
            objWallFile.WriteLine(configcontents(4))
            objWallFile.WriteLine(<span class="codestring">""</span>)
            objWallFile.WriteLine(<span class="codestring">"Wallpaper Position:"</span>)
            objWallFile.WriteLine(objIE.Document.All.TileType.Value)
            objWallFile.WriteLine(<span class="codestring">""</span>)
            objWallFile.WriteLine(<span class="codestring">"Include 'My Pictures Slideshow?'"</span>)
            objWallFile.WriteLine(objIE.Document.All.Slideshow.Value)
            objWallFile.WriteLine(<span class="codestring">""</span>)
            objWallFile.WriteLine(<span class="codestring"."Wallpaper Last Changed:"</span>)
            objWallFile.WriteLine(Now())

            <span class="codecomment">' Close and release the object</span>
            objIE.Quit
            <span class="codecommand">Set</span> objIE = <span class="codecommand">Nothing</span>

            MsgBox(<span class="codestring">"Your settings have been saved!"</span>)
    <span class="codecommand">End Function</span>

</code></pre>
</td>
</tr>
</table>
<p>
<hr />That&#8217;s all for today&#8230;now get out there and <font style="font-variant: small-caps;"><font color="#660e0e">Write the</font> <font color="#333366">Web</font></font>!
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/FrLO7iK7JMGVGPYrVMF4PktnR2U/0/da"><img src="http://feedads.g.doubleclick.net/~a/FrLO7iK7JMGVGPYrVMF4PktnR2U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FrLO7iK7JMGVGPYrVMF4PktnR2U/1/da"><img src="http://feedads.g.doubleclick.net/~a/FrLO7iK7JMGVGPYrVMF4PktnR2U/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=EfsxVZGzl8Q:x-43zDycWKo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=EfsxVZGzl8Q:x-43zDycWKo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=EfsxVZGzl8Q:x-43zDycWKo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=EfsxVZGzl8Q:x-43zDycWKo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=EfsxVZGzl8Q:x-43zDycWKo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=EfsxVZGzl8Q:x-43zDycWKo:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/EfsxVZGzl8Q" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2011/02/14/wallpaper-changer-script-for-windows-xp/"&gt;Wallpaper changer script for Windows XP&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Wallpaper changer script for Windows XP is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2011/02/14/wallpaper-changer-script-for-windows-xp/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2011/02/14/wallpaper-changer-script-for-windows-xp/</feedburner:origLink></item><item><title>After inserting a record in a DetailsView control, set the master GridView control to the newly inserted record’s ID (identity)</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/F09xHFfjXvc/</link><category>ASP.NET</category><category>C#</category><category>Visual Studio</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Fri, 29 Oct 2010 15:03:31 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=79</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2010/10/29/after-inserting-a-record-in-a-detailsview-control-set-the-master-gridview-control-to-the-newly-inserted-records-id-identity/">After inserting a record in a DetailsView control, set the master GridView control to the newly inserted record&#8217;s ID (identity)</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<h4>The problem</h4>
<p>I&#8217;m learning how to build ASP.NET websites in C# using Microsoft Visual Studio 2005. Everything about this is new to me. I have done a lot of work building HTML websites, quite a bit of javascript, and a little php and MySQL development. But now everything I know amounts to nothing as I try to learn a new development environment (Visual Studio), and two new programming languages (C# and ASP.NET). It&#8217;s an interesting process, and I rather enjoy what I&#8217;m learning, but I wanted to make it clear right up front that the advice included in this post may not be the best advice you can find: I still have a lot to learn!</p>
<p>That being said, let me describe one of the first problems I encountered in my new programming scenario:</p>
<p>I am building a website to allow users to add, edit, and delete items in a list of events. I am using an ASP.NET/Visual Studio MultiView control to manage the process flow for selecting and editing the events. The first view that the user sees is a GridView control displaying the complete list of events in the database.</p>
<p><center></p>
<div><b>Image 1: The GridView control listing the events</b></div>
<p><a href="http://www.lockworldherald.com/thewebforyou/wp-content/uploads/2010/10/gridview1.png"><img src="http://www.lockworldherald.com/thewebforyou/wp-content/uploads/2010/10/gridview1.png" alt="" title="gridview1" width="316" height="125" class="alignnone size-full wp-image-119" /></a><br />
</center></p>
<p>From this GridView, the user will select an event to view or edit. When they select an event, they are taken to the next View in the MultiView control where they will see a DetailsView control with the specific details for that event.</p>
<p><center></p>
<div><b>Image 2: The DetailsView for a particular event</b></div>
<p><a href="http://www.lockworldherald.com/thewebforyou/wp-content/uploads/2010/10/detailsview1.png"><img src="http://www.lockworldherald.com/thewebforyou/wp-content/uploads/2010/10/detailsview1.png" alt="" title="detailsview1" width="316" height="170" class="alignnone size-full wp-image-121" /></a><br />
</center></p>
<p>For my application, I needed to have a third View control with additional details. This was not a problem until I tried to add a new item to my database. As soon as I added the new item, I realized that the GridView control was either reset to select <i>nothing</i> or else it kept its <i>original selection</i> rather than automatically selecting the new item. What&#8217;s worse, since my GridView&#8217;s data source is sorted, the GridView would often have the same <i>index</i> (relative position) selected, but it could be a completely different item since the actual <i>values</i> at each <i>index</i> had changed!</p>
<p>To avoid this problem, I needed to find some way for the application to insert a new item into my SQL database, return the Identity (ID) value for that new record, refresh the data displayed in my GridView List, and then automatically select the row in my GridView list that contains the new record. Here&#8217;s how I did it:</p>
<h4>Step 1: Returning the primary key (identity) of the new record</h4>
<p>The most important piece of this, it seemed to me, was getting the web page to actually record the value of the new identity column. I am used to programming with PHP and MySQL, and there is a handy built-in function that allows you to do this easily. You simply call a MySQL INSERT operation and then call the function <b>mysql_insert_id(),</b> which returns the Identity (ID) of the record inserted. There is no such built-in function in SQL, ASP.NET, or Visual Studio. So I had to build my own method to do this.</p>
<p>First, I wrote a Stored Procedure in SQL Server Management Studio that would take the values from my website, insert them into a new record in the SQL database, and return the value of the Identity of the newly-inserted record. Here&#8217;s the stored procedure I used:</p>
<table cellpadding="5" cellspacing="0" border="1" style="background:#F2F2F2;" align="middle">
<tr valign="top">
<th>SQL Code Sample: Stored Procedure that inserts a new record and returns the Identity value</th>
</tr>
<tr valign="top">
<td>
<pre><code>
    <span class="codecommand">CREATE PROCEDURE</span> [dbo].[spAddEventAndReturnEventIDValue] (
	<span class="codecomment">-- Add the parameters for the stored procedure here</span>
	@startDate <span class="codecommand">DateTime</span>,
	@endDate <span class="codecommand">DateTime</span>,
	@title <span class="codecommand">varchar</span>(500),
	@description <span class="codecommand">varchar</span>(1000),
	@location <span class="codecommand">varchar</span>(500),
	@NewID <span class="codecommand">int</span> = <span style="color:#808080;">NULL</span> <span class="codecommand">OUTPUT</span>
    )
    <span class="codecommand">AS
    BEGIN</span>
             <span class="codecomment">-- Insert SQL Command for this Procedure</span>
	<span class="codecommand">INSERT INTO</span> [tblCalendarEvent] ([startDate], [endDate], [title],
		[description], [location])
	<span class="codecommand">VALUES</span> (@startDate, @endDate, @title,
		@description, @location)

	<span class="codecomment">-- Read the just-inserted Event ID into @NewID</span>
	<span class="codecommand">SET</span> @NewID = <span class="codestring">SCOPE_IDENTITY()</span>

	<span class="codecomment">--Return the @NewID variable</span>
	<span class="codecommand">RETURN</span> @NewID

    <span class="codecommand">END</span>
</code></pre>
</td>
</tr>
</table>
<p>Once you have created your stored procedure, it is a fairly simple matter to call it. In Visual Studio, select the SQL data source control and change the properties such that the <b>InsertCommandType</b> is &#8220;StoredProcedure&#8221; and in the <b>InsertQuery</b> Query Builder window (Where you would normally type the SQL INSERT query itself), type in the name of the stored procedure (In this case, spAddEventAndReturnEventIDValue).</p>
<h4>Step 2: Finding and selecting the new record in your GridView control</h4>
<p>Simply calling a stored procedure that returns a value is not enough to do the job, of course. The next thing you have to do is take that returned value and make it the selected value for the GridView control.</p>
<p>Used to dealing with DropDown lists, I thought I could just assign the GridView&#8217;s value property to the returned value using a statement something like this:</p>
<p style="margin-left:1em;margin-right:1em">GridView1.SelectedValue = command.Parameters[<span class="codestring">"@NewID"</span>].Value;</p>
<p>Unfortunately, it is not that easy. When I tried to do this, I got the following error message:</p>
<p style="margin-left:1em;margin-right:1em"><b>Compiler Error Message:</b> CS0200: Property or indexer &#8216;System.Web.UI.WebControls.GridView.SelectedValue&#8217; cannot be assigned to &#8212; it is read only</p>
<p>So much for doing things the easy way. The only thing left to do, as far as I could figure, would be to write a code that cycles through the entire GridView list until it finds a row that matches the value returned by my stored procedure (The Identity value of the newly-inserted record). In my case, the GridView was set to allow paging, so I had to not only identify the correct <i>index</i> of the new record, but also the right <i>page.</i></p>
<p>I don&#8217;t know if this is the best or the only way to do things, but here&#8217;s the code that I came up with:</p>
<table cellpadding="5" cellspacing="0" border="1" style="background:#F2F2F2;" align="middle">
<tr valign="top">
<th>C# Code Sample: Forcing a GridView to select the ID of a record inserted by a bound DetailsView</th>
</tr>
<tr valign="top">
<td>
<pre><code>
<span class="codecommand">using</span> System;
<span class="codecommand">using</span> System.Data.Common;
<span class="codecommand">using</span> System.Web.UI;
<span class="codecommand">using</span> System.Web.UI.WebControls;

<span class="codecommand">public partial class</span> <span class="codesyntax">PageName</span> : System.Web.UI.<span class="codesyntax">Page</span>
{
    <span class="codecommand">protected void</span> On_Inserted(
        <span class="codecommand">object</span> sender, <span class="codesyntax">SqlDataSourceStatusEventArgs</span> e)
     {
        <span class="codesyntax">DbCommand</span> command = e.Command;

        <span class="codecomment">//Pass the SQL parameter returned to a C# string</span>
        <span class="codesyntax">String</span> NewID =
            command.Parameters[<span class="codestring">"@NewID"</span>].Value.ToString();

        <span class="codecomment">// Finding the data that was inserted:</span>

            <span class="codecomment">//Set the default variables</span>
                <span class="codecomment">//No row should be selected</span>
                <span class="codecommand">int</span> sel = -1;
                <span class="codecomment">//No page should be selected</span>
                <span class="codecommand">int</span> pag = -1;

            for (<span class="codecommand">int</span> i = 0; i < GridView1.PageCount; i++)
            {
                <span class="codecomment">//Go to page "i"</span>
                GridView1.PageIndex = i;
                <span class="codecomment">//Refresh data (Not sure if this is required)</span>
                GridView1.DataBind();

                <span class="codecomment">//Set the default row index to 0 (first row)</span>
                <span class="codecommand">int</span> row = 0; 

                <span class="codecomment">//Search through DataKeys for each row</span>
                <span class="codecommand">foreach</span> (<span class="codesyntax">DataKey</span> dk <span class="codecommand">in</span> GridView1.DataKeys )
                {
                    if (dk.Value.ToString().ToLower() ==
                         NewID.ToLower()
                        )
                    {
                        <span class="codecomment">//Save the index of the matching row</span>
                        sel = row;
                        <span class="codecomment">//Save the index of the matching page</span>
                        pag = i;
                    }

                    <span class="codecomment">//Move to the next row</span>
                    row = row + 1;
                }
            }

        <span class="codecomment">//Bind the GridView to the new data:</span>
            <span class="codecomment">//Refresh the GridView data source</span>
            SQLDataSource1.DataBind();

            <span class="codecomment">//Refresh Databinding of the GridView</span>
            GridView1.DataBind();

            <span class="codecomment">//Move to the correct page in the GridView</span>
            GridView1.PageIndex = pag;

            <span class="codecomment">//Select the row containing your data</span>
            GridView1.SelectedIndex = sel;

            <span class="codecomment">//Double-check DetailsView is on the right page</span>
                <span class="codecomment">//This is probably not required...</span>
            DetailsView1.PageIndex = 0;

            <span class="codecomment">//Change DetailsView to ReadOnly mode</span>
            DetailsView1.ChangeMode(
                <span class="codesyntax">DetailsViewMode</span>.ReadOnly);

            <span class="codecomment">//Refresh the DetailsView to ensure it shows details</span>
            <span class="codecomment">//for the correct record</span>
            DetailsView1.DataBind();
     }
}
</code></pre>
</tr>
</td>
</table>
<p>The final piece that is required is to make sure that the function coded above actually runs when a new record is inserted. To do that, you&#8217;ll have to add some codes to your ASPX page manually. First, you need to find the SQL data source control that calls your stored procedure. It should look something like this:</p>
<p style="margin-left:1em;margin-right:1em">&lt;<span class="codestring">asp:SqlDataSource</span> <span class="codestring">ID</span><span class="codecommand">=&#8221;SQLDataSource1&#8243;</span> <span class="codestring">runat</span><span class="codecommand">=&#8221;server&#8221;</span> <span class="codestring">ConnectionString</span><span class="codecommand">=&#8221;<span style="background:yellow">&lt;%</span><span style="color:#000000">$ ConnectionStrings:ConnectionString1 </span><span style="background:yellow">%&gt;</span>&#8221; <span class="codestring">InsertCommand</span><span class="codecommand">=&#8221;spAddEventAndReturnEventIDValue&#8221;</span> <span class="codestring">InsertCommandType</span><span class="codecommand">=&#8221;StoredProcedure&#8221;</span> </span></span>&gt;</p>
<p>Just add the call to the new <span class="codecommand">On_Inserted</span> method by adding <span class="codestring">OnInserted</span><span class="codecommand">=&#8221;On_Inserted&#8221;</span> somewhere in the data source&#8217;s <span class="codestring">&lt;asp:SqlDataSource&gt;</span> tag, and your application should work. The new code for SqlDataSource1 should look like this:</p>
<p style="margin-left:1em;margin-right:1em">&lt;<span class="codestring">asp:SqlDataSource</span> <span class="codestring">ID</span><span class="codecommand">=&#8221;SQLDataSource1&#8243;</span> <span class="codestring">runat</span><span class="codecommand">=&#8221;server&#8221;</span> <span class="codestring">ConnectionString</span><span class="codecommand">=&#8221;<span style="background:yellow">&lt;%</span><span style="color:#000000">$ ConnectionStrings:ConnectionString1 </span><span style="background:yellow">%&gt;</span>&#8221; <span class="codestring">InsertCommand</span><span class="codecommand">=&#8221;spAddEventAndReturnEventIDValue&#8221;</span> <span class="codestring">InsertCommandType</span><span class="codecommand">=&#8221;StoredProcedure&#8221;</span> <span class="codestring">OnInserted</span><span class="codecommand">=&#8221;On_Inserted&#8221;</span></span></span>&gt;</p>
<p>Now, when you insert a new record via your DetailsView control, the new information will be stored in the SQL Server database, SQL Server will return the value of the Identity column for the new row, and your page will automatically set the GridView control to select the newly-inserted item. This is so much better than having to go back to the beginning, search for and select the record you just inserted, and page through the rest of the MultiView until you get to the section you need to work on!</p>
<p>
<hr />That&#8217;s all for today&#8230;now get out there and <font style="font-variant: small-caps;"><font color="#660e0e">Write the</font> <font color="#333366">Web</font></font>!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/PYE_tvJX6oVpe7hHTXxKvezZAvQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/PYE_tvJX6oVpe7hHTXxKvezZAvQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PYE_tvJX6oVpe7hHTXxKvezZAvQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/PYE_tvJX6oVpe7hHTXxKvezZAvQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=F09xHFfjXvc:TW0Ut-zxENM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=F09xHFfjXvc:TW0Ut-zxENM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=F09xHFfjXvc:TW0Ut-zxENM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=F09xHFfjXvc:TW0Ut-zxENM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=F09xHFfjXvc:TW0Ut-zxENM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=F09xHFfjXvc:TW0Ut-zxENM:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/F09xHFfjXvc" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2010/10/29/after-inserting-a-record-in-a-detailsview-control-set-the-master-gridview-control-to-the-newly-inserted-records-id-identity/"&gt;After inserting a record in a DetailsView control, set the master GridView control to the newly inserted record&amp;#8217;s ID (identity)&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
After inserting a record in a DetailsView control, set the master GridView control to the newly inserted record&amp;#8217;s ID (identity) is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2010/10/29/after-inserting-a-record-in-a-detailsview-control-set-the-master-gridview-control-to-the-newly-inserted-records-id-identity/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2010/10/29/after-inserting-a-record-in-a-detailsview-control-set-the-master-gridview-control-to-the-newly-inserted-records-id-identity/</feedburner:origLink></item><item><title>Software Review: Listgarden 1.3</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/uyQMgrucI1w/</link><category>Content Management</category><category>Level: Intermediate</category><category>Product/Service Review</category><category>RSS</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sat, 19 Jul 2008 21:37:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=39</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/07/19/software-review-listgarden-1-3/">Software Review: Listgarden 1.3</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p><a href="http://www.softwaregarden.com/products/listgarden">Listgarden</a> is a very powerful RSS creation and management tool that runs on Windows, Mac, and Linux platforms, and can be configured as a Web-based application.</p>
<p>For those of you who subscribe to all of my feeds, let me apologize&#8230;I know that I&#8217;ve mentioned Listgarden several times: in this blog, the <a href="http://lockworldherald.com/news/LWHNews/default.aspx">Lockworld Herald News</a>, and my <a href="http://lockworldherald.com/Documents/ResourceList.aspx">Resources</a> feed.</p>
<p>I think the program deserves all of these mentions, however, because it is so versatile and so simple. Without any knowledge of RSS or XML structure or rules, you can create and edit as many feeds as you want to. You have the options of creating the feeds as local files on your computer, or uploaded to your FTP server (or both). My favorite feature of Listgarden is that you can optionally export an HTML version of your feed containing some or all of your feed items as a Web-based file. This can allow you to offer a preview of your latest feed items to your site visitors or an alternate way to view &#8220;what&#8217;s new&#8221; on your site.</p>
<p>The program uses a Web-based  GUI, which makes it a little bit unusual to work with at first. But once you get the hang of things, you can  be publishing RSS feeds in no time. The only downside is that there is no WYSIWYG (What You See is What You Get) editor, so if you want to include rich text, images, or links in your feed items, you will have to write the HTML codes for these items. </p>
<p>You can completely customize both your feed and your HTML output any way you want, which is very nice. For example, if you sell advertisements in your feed, or want to offer between-item ads from Google AdSense or other sources, you can easily modify your template to accommodate this. Furthermore, since you can completely customize your HTML output, you can ensure that your page is ready for viewing as soon as it&#8217;s exported, with any navigation structure, introductory text, links to the RSS feed for subscriptions, footers, etc. </p>
<p>I use Listgarden to create and manage my <a href="http://lockworldherald.com/news/LWHNews/default.aspx">Lockworld Herald News</a> feed. Because this feed is entirely self-promotional, I don&#8217;t expect many people to subscribe to it. However, for visitors to my site, glancing at the HTML version of the feed (the link above) will give them an overview about any recent changes I&#8217;ve made to the site, without having to subscribe to the RSS feed.</p>
<p>Of course, most modern Web browsers now have the capability to display RSS feeds in readable format, rather than the raw code they used to show. Furthermore, services like <a href="http://www.feedburner.com">FeedBurner</a> offer a Web-readable version of your feed automatically.  So the HTML version is not essential. But the advantage is that it can contain all of your navigation structure so visitors can see what else you have to offer, and that it can be designed to match your site&#8217;s look and feel.</p>
<p> Listgarden can also be used as a PortableApp (run from a USB drive, rather than installed locally). You can even use multiple instances of Listgarden (not simultaneously) by installing them in different folders on your computer to manage different sets of feeds. This can be particularly useful for those who manage RSS feeds for other people&#8217;s sites, or for multiple sites of their own. Of course, with Listgarden you can have as many feeds as you want to in each application folder on your machine, if you only want to run one copy of the application.  </p>
<p>Because it is available for Windows, Mac, and Linux and can be used portably, it is ideal for people working on the same projects on multiple platforms. For example, I use both a Linux-based Eee PC and a Windows XP PC to work on my site. Fortunately, I can manage my feeds on either computer (although I have to be using the right computer to actually publish the local file once I&#8217;ve made changes, because the file locations on the two machines are different).</p>
<p>I&#8217;ve tried using several different RSS feed creation tools in the past, but none have offered me the power and flexibility of Listgarden. So if the other methods I&#8217;ve used (<a href="http://thewebforyou.blogspot.com/2008/03/adding-rss-feed-to-your-site.html">here</a> and <a href="http://thewebforyou.blogspot.com/2008/03/adding-more-advanced-rss-feed-to-your.html">here</a>) don&#8217;t quite work for you, Listgarden might just be worth a try. </p>
<p>
<hr />That&#8217;s all for today&#8230;now get out there and <font style="font-variant: small-caps;"><font color="#660e0e">Write the</font> <font color="#333366">Web</font></font>!
<div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;">Blogged with the <a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser">Flock Browser</a></div>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/z3qQotpeoLebMqZpG94uTlUD8ak/0/da"><img src="http://feedads.g.doubleclick.net/~a/z3qQotpeoLebMqZpG94uTlUD8ak/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/z3qQotpeoLebMqZpG94uTlUD8ak/1/da"><img src="http://feedads.g.doubleclick.net/~a/z3qQotpeoLebMqZpG94uTlUD8ak/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=uyQMgrucI1w:bG9Ao7YLezg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=uyQMgrucI1w:bG9Ao7YLezg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=uyQMgrucI1w:bG9Ao7YLezg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=uyQMgrucI1w:bG9Ao7YLezg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=uyQMgrucI1w:bG9Ao7YLezg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=uyQMgrucI1w:bG9Ao7YLezg:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/uyQMgrucI1w" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/07/19/software-review-listgarden-1-3/"&gt;Software Review: Listgarden 1.3&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Software Review: Listgarden 1.3 is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } Listgarden is [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/07/19/software-review-listgarden-1-3/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/07/19/software-review-listgarden-1-3/</feedburner:origLink></item><item><title>The Web for You: Year in Review</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/Cxf0AmraOV0/</link><category>Summary of previous posts</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Fri, 04 Jul 2008 00:55:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=37</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/07/04/the-web-for-you-year-in-review/">The Web for You: Year in Review</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>It&#8217;s hard to believe, but <span style="font-style: italic;">The Web for You</span> is already a year old! I know it&#8217;s been a very interesting year for me as I tried my hand at blogging for the first time, and I hope that you have found some useful tips, tricks, and ideas along the way. For anyone who might be a new reader, I&#8217;d like to take a short moment to review some of the more interesting posts from the past year.</p>
<ul>
<li><a href="http://thewebforyou.blogspot.com/2007/06/register-your-domain-name-for-free.html">Register your domain name for free</a><br />My first significant post highlighted a service then called &#8220;Microsoft Office Live&#8221; (which was later re-named to Microsoft Office Small Business Live, which I&#8217;ve shortened to MOSBL). The free service from Microsoft offered <span style="font-style: italic;"><span style="font-weight: bold;">free</span></span> domain name registration <span style="font-style: italic;"><span style="font-weight: bold;">and</span></span> Web site hosting, which is what initially prompted me to start my Web site and blog (which is not connected to the site). I don&#8217;t know of anywhere else that someone can register and host a Web site free of charge!</p>
<p>Unfortunately, MOSBL was then in beta, and when the final release was launched, Microsoft only offered the free hosting. You could still use the hosting service with your own domain name, but you&#8217;d have to pay to register the domain (Which doesn&#8217;t cost very much &#8211; perhaps $15/year).</p>
<p>While the free Web site hosting and domain registration were great, users were forced to&nbsp; use the built-in &#8220;Page Designer&#8221; tools to design and build their sites. These tools were so restrictive that my frustration with using them prompted most of the ideas I&#8217;ve had over the past year. They were ideas I came up with to help me work around the limitations in MOSBL.</p>
<p>Fortunately, Microsoft no longer requires users to use the built-in &#8220;Page Designer&#8221; tools (althoutgh they are available for anyone who wants to use them), which frees me up to design my site as I see fit. MOSBL still doesn&#8217;t allow ASP or ASP.NET scripting (or any type of server-side scripting), but there are plenty of ways around that.</p>
<p>For more information, see my blog posts tagged &#8220;<a href="http://thewebforyou.blogspot.com/search/label/Microsoft%20Office%20Live%20Basics">Microsoft Office Live Basic</a>&#8221; and &#8220;<a href="http://thewebforyou.blogspot.com/search/label/Content%20Management">Content Management</a>.&#8221;</p>
</li>
<li><a href="http://thewebforyou.blogspot.com/search/label/e-commerce">E-commerce solution</a><br />In searching for ways to make my static, HTML-based Web site look, feel, and perform more like a modern, dynamic Web 2.0 site, I stumbled across <a href="http://creator.zoho.com">Zoho Creator</a>,  an extremely powerful, free Web service that allows people to create online applications for managing, manipulating, and delivering data. It occurred to me that this type of application might be a useful way to set up an e-commerce function on any Web site. I decided that <a href="http://www.paypal.com">PayPal</a> was the best choice for processing the payments. Although most other payment services will work, I focused my examples on PayPal, but they can easily be adapted to fit Google Checkout or many other services.
<p>Using Zoho Creator&#8217;s powerful tools, I was able to create a Web-based set of forms where product details could be added and edited quickly and easily by anone with the appropriate permissions. I extended the idea so that this same database could automatically create (and adjust) the&nbsp; appropriate PayPal scripts to display on the Web site. My initial experience with PayPal made me quickly realize that,  should someone change the price for their product, they would have to change it in 3-4 places to ensure everyone would see the correct price. The price would have to be changed in the main catalog, the &#8220;buy now&#8221; or &#8220;add to cart&#8221; button in the main catalog (if used), the product detail page, and the &#8220;buy now&#8221; or &#8220;add to cart&#8221; button in the product detail page. This was unacceptable to me, since it leaves so much room for errors. Using a Zoho Creator database and some clever scripting, however, I was able to &#8220;automatically&#8221; change the price (and any other details) everywhere simultaneously, just by editing the data in my Web form.</p>
<p>This idea worked out very well, and actually brought a lot of traffic to my fledgling blog and Web site. Several other bloggers even <a href="http://lockworldherald.com/news/default.aspx">picked up the idea</a> and shared it with their readers.</p>
<p>In fact, Zoho Creator worked out so well for me, that I used it for a wide variety of other projects as well.</p>
</li>
<li><a href="http://thewebforyou.blogspot.com/search/label/Content%20Management">Content Management<br /></a>After my success with using Zoho Creator as a content management tool for my <a href="http://lockworldherald.com/catalog/default.aspx">Web catalog</a>, I embarked on a series of posts about various types of content management tools, many of which made use of Zoho Creator to help store, arrange, and deliver the required contents to my site.
<p>I discussed several different types of content management tools, including:</li>
<ul>
<li><a href="http://www.dynamicdrive.com/dynamicindex17/ajaxincludes.htm">AjaxIncludes</a><br />This powerful Javascript tool can be used to embed the contents of one file directly into another. I make extensive use of ajaxincludes scripts on <a href="http://lockworldherald.com">my site</a> to provide a consistent shell for every page on the site. All of my navigation menus, page backgrounds, header images, page layouts, and table structures are delivered to every page via ajaxincludes. This makes it a lot easier for me to update page elements site-wide without having to go through and make the same changes over and over again on every page.</p>
</li>
<li><a href="http://creator.zoho.com">Zoho Creator</a><br />As I mentioned, my <a href="http://lockworldherald.com/catalog/default.aspx">product catalog</a> makes extensive use of Zoho Creator to deliver the right information about my products to both the catalog and product details pages. Similarly, my <a href="http://lockworldherald.com/Documents/ResourceList.aspx">Recommended Resources</a> pages are built and delivered exclusively by Zoho Creator. These pages, unlike my product catalog,  also include the option for visitors to the site to recommend their own resources or links for inclusion in the list, again using Zoho Creator.
<p>For an overview of how this works, please see my post titled &#8220;<a href="http://thewebforyou.blogspot.com/2007/09/content-management-using-json-feeds.html">Content Management Using JSON Feeds</a>.&#8221;</p>
</li>
<li><a href="http://www.texty.com">Texty</a><br />While searching for content management solutions, I came across Texty, which promised to deliver a simple, yet elegant, content management solution free of charge. Simply log in to Texty, write your content, and drop the HTML script they provide into your Web site where you want the content to appear, and you&#8217;re done!
<p>While Texty provides a simple and elegant solution in and of itself, I decided to combine the service with Zoho Creator to see if it would be possible to create an entire Web site (or, in my case, a subsection of a site) with a single page that could be programmed to deliver a wide variety of contents. In <a href="http://thewebforyou.blogspot.com/2007/11/content-management-building-sitemap-for.html">Content Management: Building a sitemap for dynamic Texty content</a>, I explained how some pretty advanced scripting would allow you to build a single page that could not only list your available contents, but also display them, depending on &#8220;tags&#8221; appended to the URL. For example, look at <a href="http://lockworldherald.com/Documents/articles.aspx">http://lockworldherald.com/Documents/articles.aspx</a>, compared to <a href="http://lockworldherald.com/Documents/articles.aspx?article=0711-olpc">http://lockworldherald.com/Documents/articles.aspx?article=0711-olpc</a>. Although both pages have the same internal code, the actual contents vary depending on the tags provided.</p>
</li>
</ul>
<li><a href="http://thewebforyou.blogspot.com/search/label/SEO">Search Engine Optimization (SEO)<br /></a>All of this work with external content management systems, while very powerful and useful, did result in some problems. Although the methods I used would be ideal for a small community Web site with an existing audience (A personal, school, or church Web site, for example, where the site did not need to rely on traffic originating from Web searches). For small businesses, however, the story is different. These sites rely on traffic driven to their sites by Web search engines. The content management systems I&#8217;ve described in my posts tend to scatter the valuable contents of your site across the Web onto other sites, such as http://creator.zoho.com and www.texty.com. Someone searching for something you offer on your site might find the content you&#8217;ve created without ever visiting your site to see what else you have to offer.
<p>To further complicate things, javascript-based content management makes the content you embed in your Web site completely invisible to search engine spiders, who only see the hard-coded (or server-generated) content on your page(s). For a small business struggling to compete with the &#8220;Big Dogs&#8221; on the Web, this is unacceptable.</p>
<p>Yet another twist is that, for people who want to embed advertising from programs like <a href="http://www.google.com/adsense">Google AdSense</a>, the content delivered to your page(s) via javascript cannot be used to target your ads to your content, which means that if any paid advertisements ever make it to your site, they are unlikely to generate much interest with your audience.</p>
<p>Of the content management solutions I&#8217;ve described, Texty does the best job of maximizing your SEO. Although your content will still show up in the search engines with a texty.com URL, users who click on the link can be re-directed  to a page you specify in your Texty&#8217;s settings. While not perfect, it is the best of the methods described above.</p>
</li>
<li><a href="http://thewebforyou.blogspot.com/search/label/RSS">RSS feeds for your site</a><br />My latest efforts have focused around creating RSS feeds for your Web site. RSS is a powerful way to deliver targeted messages to the people who have directly expressed an interest in your site by subscribing to your feed. I&#8217;ve described a <a href="http://thewebforyou.blogspot.com/2008/03/adding-rss-feed-to-your-site.html">simple</a> and more <a href="http://thewebforyou.blogspot.com/2008/03/adding-more-advanced-rss-feed-to-your.html">complex</a> method of creating an RSS feed for your site, as well as provided the meta tags necessary to enable your feed to  be visible to your readers.</li>
</ul>
<p><span style="font-weight: bold;">What&#8217;s next?</span><br />Here&#8217;s a sneak peek at some of the projects I&#8217;m working on, so you will know what to expect during the second year of <span style="font-style: italic;">The Web for You</span>&#8230;
<ul>
<li>Product Review: <a href="http://www.softwaregarden.com/products/listgarden">Listgarden</a><br />To continue on with my earlier theme of creating an RSS feed for your site, I thought it might be worthwhile to share my favorite RSS creation tool with my readers. Listgarden is a powerful, free program for creating and managing RSS feeds. It works on Windows, Mac, and Linux systems.</p>
</li>
<li>Web advertising: Is it worth it?<br />I realized that before I had my own ad-free site, I hated to see someone else&#8217;s advertisements plastered all over my carefully-created Web pages. But once I had my own site, the promise of making money just by displaying ads to my site visitors convinced me to advertise on my Web site once more. I plan to share my thoughts about Web advertising and, hopefully, make a decision once and for all about whether I should continue to advertise on my site and my blog.
</li>
<li>Use Texty to provide &#8220;instant comments&#8221; to any Web page<br />If nothing else, Texty can easily be used to provide a quick and efficient system of comments to any page on your site. You don&#8217;t need to do any fancy scripting or build your own comment-management system.
</li>
<li>Build your own &#8220;TinyURL&#8221;<br /><a href="http://tinyurl.com/">TinyURL</a> is well known for taking long, complicated URLs and shrinking them down into bite-sized chunks. Although it&#8217;s a very powerful tool, it does have its drawbacks. For one thing, many people are hesitant to click on a URL that doesn&#8217;t make the domain name clearly visible in the link. Clicking on a TinyURL could bring up anything in the Web browser, so people will naturally be cautious about clicking on one of these links unless they know and trust the sender. Furthermore, TinyURL&#8217;s links, though short, are not intuitive. They typically include a random string of numbers and/or letters, making them difficult to&nbsp; remember.
<p>With this post, I will show you how you can create your own TinyURL system with your own domain name and more intuitive links. For example, try visiting <a href="http://lockworldherald.com?openCD">lockworldherald.com?openCD</a>. This is much shorter and easier to remember than the true URL, which is <a href="http://lockworldherald.com/catalog/productDetails/1.aspx">http://lockworldherald.com/catalog/productDetails/1.aspx</a>. Similarly, <a href="http://lockworldherald.com?olpc">lockworldherald.com?olpc</a> is easier to remember than <a href="http://lockworldherald.com/Documents/articles.aspx?article=0711-olpc">http://lockworldherald.com/Documents/articles.aspx?article=0711-olpc</a>. Not only are these URLs easier to remember, they have the advantage of being identified as belonging to my site, so my readers will know what they&#8217;re getting into <span style="font-style: italic;"><span style="font-weight: bold;">before</span></span> they click them.</p>
</li>
<li>Newsletter application<br />I will be detailing how you can use Zoho Creator to build, preview, and deliver e-mail marketing messages or newsletters. Not only can Zoho Creator handle the process of assembling and mailing the messages, it can also give users a convenient way to subscribe to and unsubscribe from your mailing list.
</li>
<li>Search-Engine friendly content management<br />As I mentioned previously, most javascript-powered content management systems utterly destroy your site&#8217;s searchability. I have several ideas in the works for building a more localized content management system that will allow you to build your Web pages dynamically without hiding all of the &#8220;good stuff&#8221; from search engines. The system will combine a more advanced version of ajaxincludes with the ability to read and manipulate data from a spreadsheet created and edited with Microsoft Excel, OpenOffice.org Calc, or other spreadsheet tools. Just a word of caution&#8230;this will take a lot of heavy-duty scripting, but the results should be well worth it.
</li>
<li>And much, much more&#8230;<br />Of course, there will be other ideas I&#8217;ll share with you as I think of them. If you have any ideas or suggestions about what you&#8217;d like to see covered, feel free to share them in the comments.</li>
</ul>
<p>
<hr />That&#8217;s all for today&#8230;now get out there and <font style="font-variant: small-caps;"><font color="#660e0e">Write the</font> <font color="#333366">Web</font></font>!
<div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;">Blogged with the <a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser">Flock Browser</a></div>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/--NhITJwZ7BheeoL-HK0FIZqWq0/0/da"><img src="http://feedads.g.doubleclick.net/~a/--NhITJwZ7BheeoL-HK0FIZqWq0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/--NhITJwZ7BheeoL-HK0FIZqWq0/1/da"><img src="http://feedads.g.doubleclick.net/~a/--NhITJwZ7BheeoL-HK0FIZqWq0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=Cxf0AmraOV0:pjIcuhNYxXM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=Cxf0AmraOV0:pjIcuhNYxXM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=Cxf0AmraOV0:pjIcuhNYxXM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=Cxf0AmraOV0:pjIcuhNYxXM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=Cxf0AmraOV0:pjIcuhNYxXM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=Cxf0AmraOV0:pjIcuhNYxXM:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/Cxf0AmraOV0" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/07/04/the-web-for-you-year-in-review/"&gt;The Web for You: Year in Review&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
The Web for You: Year in Review is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/07/04/the-web-for-you-year-in-review/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/07/04/the-web-for-you-year-in-review/</feedburner:origLink></item><item><title>Create and sell custom products with Cafe Press</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/S30BOdia7qk/</link><category>e-commerce</category><category>Establishing a Web presence</category><category>Level: Novice</category><category>Product/Service Review</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Fri, 27 Jun 2008 22:53:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=36</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/06/27/create-and-sell-custom-products-with-cafe-press/">Create and sell custom products with Cafe Press</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>I&nbsp;just stumbled across a very interesting site that I thought I should share with my readers. It&#8217;s a site called <a href="http://www.cafepress.com">Cafe Press</a>. This site offers a wide variety of print-on-demand products from clothing to housewares and other gifts. You can add your own images to the products to create your very own styles, logos, catch-phrases, etc., which you can sell online in your very own Cafe Press store. The best part about Cafe Press is that you don&#8217;t have to spend any money to get started. Because Cafe Press doesn&#8217;t produce any products until someone orders them, there are no setup fees or minimum purchases required. Without spending any money, you can create as many custom products as you want, and sell them in your own, personalized online shops.</p>
<p>Each product has a &#8220;base price&#8221; that covers all of the costs of manufacture and production. To make money, simply set a &#8220;markup&#8221; price that you will earn as commission on sales of your product(s) (Just a word to the wise&#8230;be reasonable: I saw a thong for sale for $200 while I was browsing the site!). That&#8217;s all there is to it. It was so easy to get started that I&#8217;ve already created my own online shop with a few products that are available for immediate purchase, which I&#8217;ve included below as an example of what you can do. Of course, you can also buy your own products directly for the base price, without paying the markup.</p>
<p>Although it is tempting to think that I&#8217;ll soon strike it rich by selling my custom products at Cafe Press, the reality is that, like most online money-making opportunities, I&#8217;ll be lucky to pull in a few dollars per year, and that only if I can talk my friends and family into purchasing my products. There are probably 10 million unique products currently being sold at Cafe Press, so don&#8217;t expect massive sales right off the bat. However, if you have a good enough idea/design, you just might be able to create a popular product line and make decent money from your sales. But whether I make money or not, it&#8217;s fun to see what my ideas will look like on customized products. And maybe, just maybe, I will actually be able to pull in a few dollars each year for my efforts. <strike>There is one caveat worth mentioning: if you don&#8217;t make at least $25 per year, your earnings will be forfeited and returned to Cafe Press</strike> <i>(I think I was mistaken here&#8230;after re-reading the terms, it looks like your earnings will only be forfeited if you fail to provide a valid mailing address).</i></p>
<p>And, if you&#8217;re just interested in creating a custom coffee mug, shirt, sticker, notebook, or other product for your own personal use, you can easily do that as well &#8211; you don&#8217;t have to sell them in an online store or in the Cafe Press marketplace.</p>
<p>As I said, I don&#8217;t think that Cafe Press is a great way to make a living, but it might be a nice way to help promote your site or your cause. For example, you might consider shelling out some of your own money to purchase your custom-branded products to give away to family and friends, or to offer as incentives to bring people to your site or blog (&#8220;Sign up for our e-mail newsletter, and you will automatically be entered to win an exclusive {Your site/brand name} coffee mug!&#8221;). In addition, your customized products can be sold as a part of a fund raising campaign to raise money for your cause or your site.</p>
<p><span style="font-weight: bold;">New products to support my new tagline: <font style="font-variant: small-caps;"><span style="color: rgb(102, 14, 14);">Write the</span> <span style="color: rgb(51, 51, 102);">Web</span>™</font> </span></p>
<p>Feel free to check out my new online store at <a href="http://www.cafepress.com/WriteTheWeb">http://www.cafepress.com/WriteTheWeb</a>. I&#8217;m not pressuring anyone to buy my products, but if you are interested in seeing what an online store at Cafe Press looks like, this might be a good place to start. I&#8217;m currently offering two designs on a limited selection of products. </p>
<p><span style="font-weight: bold;">Drinkware:<br /></span>The first products I created were my drinkware collection, containing the &#8220;I write the Web&#8221; logo variation, along with some self-promoting HTML on the reverse. See my <a href="http://lockworldherald.com/catalog/productDetails/2.aspx">product page</a> for more details and the exact HTML codes in plain text (readable) format.<br />
<table style="" align="center" border="0" cellpadding="10" cellspacing="0">
<tbody>
<tr valign="bottom">
<td align="center"><img src="http://images.cafepress.com/product/279571218v3_240x240_Front.jpg" /></p>
<p><b><font style="font-variant: small-caps;">I write the Web</font></b> (front)</td>
<td align="center"><img src="http://images.cafepress.com/product/279571218v3_240x240_Back.jpg" /><br /><b>HTML code</b> (back)</td>
</tr>
<tr valign="top">
<td colspan="2" align="center">Available in three sizes: <a href="http://www.cafepress.com/writetheweb.279571219">coffee mug</a>, <a href="http://www.cafepress.com/writetheweb.279571218">large mug</a>, or <a href="http://www.cafepress.com/writetheweb.279571217">stein</a>.</td>
</tr>
</tbody>
</table>
<p><span style="font-weight: bold;">Intimate Apparel:</span><br />The next design I created was a flirty take-off of my new tagline for my &#8220;intimate apparel&#8221; line, just for the fun of it. The boxer shorts and thong feature the &#8220;<strike>Write</strike> <font color="#660e0e">Ride</font> the Web&#8221; design.<br />
<table style="" align="center" border="0" cellpadding="10" cellspacing="0">
<tbody>
<tr valign="bottom">
<td align="center"><img src="http://images.cafepress.com/product/279569244v4_240x240_Front.jpg" /></p>
<p><b><strike>Write</strike> <font color="#660e0e">Ride</font> the Web</b> (boxer)</td>
<td align="center"><img src="http://images.cafepress.com/product/279554588v7_240x240_Front.jpg" /><br /><b><strike>Write</strike> <font color="#660e0e">Ride</font> the Web</b> (classic thong)</td>
</tr>
</tbody>
</table>
<p>Whether I sell any of these products or not (I do plan on purchasing a mug for myself, at the very least), I&#8217;ve certainly had fun designing the products, and I plan to offer some new designs when I get a chance to come up with a few more image ideas. I won&#8217;t bother the readers of this blog with every new design I come up with, but if you are interested in hearing about new products, you can either subscribe to my <a href="http://lockworldherald.com/news/LWHNews/default.aspx">Lockworld Herald Site News</a> RSS <a href="http://feeds.feedburner.com/LockworldHeraldNews">feed</a> or, for a simpler solution, visit my <a href="http://www.cafepress.com/WriteTheWeb">online store</a> and subscribe to my store e-newsletter (That way, you will only receive notices about new products if you don&#8217;t want to get all of the selfish news I post about my site!).</p>
<p>
<hr />That&#8217;s all for today&#8230;now get out there and <font style="font-variant: small-caps;"><font color="#660e0e">write the</font> <font color="#333366">Web</font></font>!
<div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;">Blogged with the <a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser">Flock Browser</a></div>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/pqEqJxOEOrZ-ct2LrygUhQprN4E/0/da"><img src="http://feedads.g.doubleclick.net/~a/pqEqJxOEOrZ-ct2LrygUhQprN4E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/pqEqJxOEOrZ-ct2LrygUhQprN4E/1/da"><img src="http://feedads.g.doubleclick.net/~a/pqEqJxOEOrZ-ct2LrygUhQprN4E/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=S30BOdia7qk:HEkukkAzYsA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=S30BOdia7qk:HEkukkAzYsA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=S30BOdia7qk:HEkukkAzYsA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=S30BOdia7qk:HEkukkAzYsA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=S30BOdia7qk:HEkukkAzYsA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=S30BOdia7qk:HEkukkAzYsA:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/S30BOdia7qk" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/06/27/create-and-sell-custom-products-with-cafe-press/"&gt;Create and sell custom products with Cafe Press&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Create and sell custom products with Cafe Press is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/06/27/create-and-sell-custom-products-with-cafe-press/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/06/27/create-and-sell-custom-products-with-cafe-press/</feedburner:origLink></item><item><title>Changes to Microsoft Office Live Small Business</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/whgOr72GWIw/</link><category>Establishing a Web presence</category><category>Microsoft Office Live Basics</category><category>Product/Service Review</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 22 Jun 2008 10:31:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=35</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/06/22/changes-to-microsoft-office-live-small-business/">Changes to Microsoft Office Live Small Business</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>Earlier this year, <a href="http://smallbusiness.officelive.com/">Microsoft Office Live Small Business</a> (Originally Microsoft Office Live) launched several improvements to their service. I use this service to host my own Web site (<a href="http://lockworldherald.com/">LockworldHerald.com</a>), and I&#8217;ve blogged about it in the past. Although they no longer offer free domain name registration, they do continue to offer free Web site hosting (which is typically far more expensive than the domain name registration anyway). In the past, I found the service to be very useful to establish an online presence for myself, but was continually frustrated at how difficult it was to edit pages using the built-in page editor. In the end, I simply uploaded all of my Web pages manually to the &#8220;Documents&#8221; folder &#8211; the only folder I had any access to. This allowed me to create my own pages by writing my own HTML codes, but was getting difficult to manage as the number of files grew.</p>
<p>The new improvements to the site now allow even free account holders to design their site using their own Web design tools (I typically use WordPad&nbsp; or <a href="http://www.nvu.com">Nvu</a>, but other Web authoring/design tools can be used as well). This new structure allows me to keep my site more organized, but more importantly, it gives me access to the top-level of my site. There are certain Web services that require  authentication by checking for files in the root directory (Like <a href="http://www.google.com/a">Google Web Apps</a> and <a href="http://www.delorie.com">Delorie</a>). In addition to making such services available, having access to the root directory also gives me the ability to create a <a href="http://en.wikipedia.org/robots.txt">robots.txt</a> file that can tell search engine bots to avoid indexing certain file types or folders. Since I use a lot of <a href="http://thewebforyou.blogspot.com/2007/09/new-project-content-management.html">AjaxIncludes</a> scripting, this is a very nice way to keep all of those partial Web pages out of the search engine results.</p>
<p>Another improvement to the service is to make it easier to upload files and folders to the Web server. Previously, I had to upload files manually using a Web interface, which made it very difficult to work with changes to my site. I had to manually delete the  files that I wanted to upgrade from my site, then go through and select the new files to upload. Now, however, I can simply drag the files from my computer to the Web folder and it will automatically overwrite the existing files. To make things even easier, I can even drag and drop whole folders at the same time.</p>
<p>The ability to use my own design tools also makes it easier to keep things up to date, and even host my own <a href="http://lockworldherald.com/news/LWHNews/2008/080617%20-%20LWHNews%20back%20online.html">RSS feed</a> on the site. I use <a href="http://www.softwaregarden.com/products/listgarden">Listgarden</a> to create and manage my feeds, which has the added benefit of being able to export a &#8220;human-readable&#8221; HTML file along with the XML codes for the feed. Now, I can easily drag and drop the whole folder from my local folder to my Web folder (Unfortunately, Microsoft Office Live Small Business Basics doesn&#8217;t offer FTP uploads), and my feed and my HTML page(s) are updated at the same time. I&#8217;ll discuss Listgarden in more detail shortly on <a href="http://thewebforyou.blogspot.com">The Web for You</a>.<br />&nbsp;<br />While still not a perfect solution, the level of service offered by the free Microsoft Office Live Small Business makes it a very powerful service for anyone wanting to create an online presence. If you need your own domain name (www.yoursite.com), you should be able to buy  one for $10-15/year and simply point it to your free MOLSB site.</p>
<p>There is still one major drawback to MOLSB, which is that you are not permitted to use  any kinds of server-side scripts or code in your pages. It would be great to be able to write dynamic Web pages using Active Server Pages (ASP), or to build and access SQL databases, but unfortunately, this isn&#8217;t possible.</p>
<p>  Of course, that&#8217;s where other services, such as <a href="http://creator.zoho.com">Zoho Creator </a>and <a href="http://www.texty.com">Texty</a> come in handy. With the right application of these services and the right javascript codes, I can build a site that acts much like an ASP-based site even if I can&#8217;t write a &#8220;real&#8221; ASP page.</p>
<p>Currently, I&#8217;m migrating my old site over to the new structure. It&#8217;s going to take a little bit of time, but eventually, all of my Web pages will be organized into a proper folder structure. As I work on this, there will be a few inconsistencies on my site, with some links directing visitors to the new pages, and others pointing back to the older versions. But eventually, I think the new structure will be easier to manage, at least for me.</p>
<p>Anyone looking to create their own Web site, but&nbsp; unwilling or unable to pay for monthly Web-hosting fees should consider Microsoft Office Live Basics for their hosting needs.
<div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;">Blogged with the <a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser">Flock Browser</a></div>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/yHaUOHp6IgaOrCk1gofeYYVY6_w/0/da"><img src="http://feedads.g.doubleclick.net/~a/yHaUOHp6IgaOrCk1gofeYYVY6_w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yHaUOHp6IgaOrCk1gofeYYVY6_w/1/da"><img src="http://feedads.g.doubleclick.net/~a/yHaUOHp6IgaOrCk1gofeYYVY6_w/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=whgOr72GWIw:vUtcYUpZmZM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=whgOr72GWIw:vUtcYUpZmZM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=whgOr72GWIw:vUtcYUpZmZM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=whgOr72GWIw:vUtcYUpZmZM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=whgOr72GWIw:vUtcYUpZmZM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=whgOr72GWIw:vUtcYUpZmZM:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/whgOr72GWIw" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/06/22/changes-to-microsoft-office-live-small-business/"&gt;Changes to Microsoft Office Live Small Business&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Changes to Microsoft Office Live Small Business is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/06/22/changes-to-microsoft-office-live-small-business/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/06/22/changes-to-microsoft-office-live-small-business/</feedburner:origLink></item><item><title>What can Zoho Creator do for you?</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/pGMGzsC8y1Q/</link><category>Product/Service Review</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sat, 03 May 2008 21:33:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=33</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/05/03/what-can-zoho-creator-do-for-you/">What can Zoho Creator do for you?</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>I&#8217;m constantly amazed at the wide variety of uses I can come up with for Zoho Creator. When I first stumbled across the application, I thought it might be of passing use to collect some basic information from visitors to my Web site. Over the last few months, however, I&#8217;ve experimented with a wide variety of less-than-typical uses for an online database tool.</p>
<p>For small business and personal Web site owners without access to a lot of IT support, Zoho Creator can easily serve as the functional back-end of your entire site, allowing you to develop some sophisticated and interactive applications for your Web site. Thanks to Zoho Creator, even a relatively novice user can add some powerful functionality to an otherwise dull Web site. As users become more familiar with Zoho Creator, there is almost no limit to the number of powerful applications that can be developed for any site.</p>
<p>Here are some examples of what I&#8217;ve built into my site using Zoho Creator</p>
<ul>
<li><a href="http://thewebforyou.blogspot.com/2007/08/e-commerce-step-2-of-4-create-easy-to.html"><b>E-commerce product catalog<br /></b></a>This is my personal favorite&#8230;using Zoho Creator, I was able to develop an easy-to-update <a href="http://thewebforyou.blogspot.com/2007/08/e-commerce-step-2-of-4-create-easy-to.html">catalog of products</a> for sale on my site. The catalog is completely integrated with PayPal&#8217;s functionality to allow me to sell directly from my Web site. At any time, I can change a price, image, or details about my products, or add new products to the catalog. The changes automatically get loaded into the PayPal script on the page, so when the user clicks “Buy now” or “Add to cart” I can be sure they are always paying the current price for my products. By using Zoho Creator to hold the price, product image, and description, I know that I only have to make my changes one time to ensure that all of the information is accurate in my catalog, RSS feed, and product detail pages.<br />&nbsp;</li>
<li><b>Add comments to your Web site</b><br />Although I haven&#8217;t done this for my site, it is fairly simple to use Zoho Creator to add a “comments” page or section to your Web site. All you need is to create a basic form with a field for a name and a multi-line field for the comment. Then, you use the Zoho-provided scripts to embed the blank form and a display of the form data onto a given page on your Web site, and viola, instant comments for your site.<br />&nbsp; </li>
<li><b>Redirect links to shorten URL</b> <br />I use Zoho Creator in the back end of my Web site to offer URL shortcuts to pages within my Web site. For example, <a href="http://lockworldherald.com?opencd">http://lockworldherald.com?opencd</a> takes the user to <a href="http://lockworldherald.com/documents/productdetails.aspx?product=1">http://lockworldherald.com/documents/productdetails.aspx?product=1</a>. This can be a very useful way to create shortened or personalized links to any content on the Web, not only to pages that can be found on your site. But instead of using an external service, you can brand all of the links to have your own domain in them. I&#8217;ll be detailing the steps involved in this process soon on <i><a href="http://thewebforyou.blogspot.com/">The Web for You</a>.</i><br />&nbsp;</li>
<li><b><a href="http://thewebforyou.blogspot.com/2007/07/building-interactivity-into-your-web.html">Site navigation</a></b><br />I use Zoho Creator to add navigation functionality to some of my pages. For example, <a href="http://lockworldherald.com/documents/articles.aspx">http://lockworldherald.com/documents/articles.aspx</a> contains a list of articles available on my site. This list is maintained in Zoho Creator. The nice thing about this is that I can customize which types of links are included. Compare the link above with <a href="http://lockworldherald.com/documents/articles.aspx?test=simplificationactionism">http://lockworldherald.com/documents/articles.aspx?test=simplificationactionism</a>.   On the first page, I simply list a table of contents showing what&#8217;s available on my site (and not including items that fall into certain categories, such as DRAFT or TEST). On the second page (after the example article), I have listed &#8220;related links&#8221; to other articles that fall in the same category (&#8220;Test&#8221; in this example). You will notice, on closer inspection, that the same page is loading in both of the above examples, but that I&#8217;ve used URL variables to tell the page whether to load the default content or a specific article&#8230;so I created/coded one page, and can re-use it for a variety of contents.  In this example, I&#8217;ve used <a href="http://www.texty.com/">Texty</a> to create my own unique content, and then pasted the appropriate information into a Zoho Creator database that allows me to load the content or the table of contents onto my page, depending on the parameters passed in the URL. That&#8217;s particularly nice if you don&#8217;t have access to make changes on the fly to your Web site, and don&#8217;t want to spend a lot of time uploading new pages every time you make a change. It takes some advanced javascript to get everything set up correctly, but when it&#8217;s done, it sure saves a lot of time.<br />&nbsp;</li>
<li><a href="http://thewebforyou.blogspot.com/search/label/Content%20Management"><b>Content management</b></a> <br />I use Zoho Creator as a content management tool for many pages on my site. From articles to resources to projects to products, many pages on my site get their content directly from Zoho Creator. I typically use Zoho&#8217;s JSON feeds to display the contents from a given Zoho Creator application on my Web pages, which gives me the freedom to code each page once on my Web site, and make changes on the fly at any time from Zoho Creator. Also, this gives me the ability to allow user contributions to some of my lists (Such as my <a href="http://lockworldherald.com/documents/resources.aspx">recommended resources</a>), while denying user contributions in others.<br />&nbsp;</li>
<li><b>RSS Feeds</b><br />Although it&#8217;s not a perfect solution, Zoho&#8217;s built-in support for RSS feeds can be a very useful tool for keeping your visitors informed about what&#8217;s happening on your site. The only problem with this is that all of the RSS feed links point to the record&#8217;s display page in your Zoho Creator application, and not to a link that you specify within the database. Still, it&#8217;s a useful way to get the news out to the people who need it without investing a lot of time and energy in creating and maintaining a separate feed.<br />&nbsp;</li>
<li><b>Newsletter mailing list</b><br />I am currently working on a project to create and deliver an e-newsletter using Zoho Creator&#8217;s built-in SendMail feature. In this particular application, I have one publicly-available sign-up form that people  can use to subscribe to the newsletter, as well as several private forms that I can use to customize both the template and the contents of the newsletter. I&#8217;ve been successful in creating a working system, and I&#8217;ll provide the detailed steps for making your own (it involves some pretty heavy Deluge scripting, if you do it the way I&#8217;ve done it) in an upcoming post on <i><a href="http://thewebforyou.blogspot.com/">The Web for You</a>.</i><br />&nbsp;</li>
<li><b>Unlimited business applications</b><br />If you have a small business, there&#8217;s no limit to what you can use Zoho Creator for on your site. You can use it to allow people to request a quote for your products/services (and have the results of the quote automatically e-mailed to them after they&#8217;ve filled out a form), display (and manage) your list of products available, solicit feedback about your products/services, send out e-newsletters, or do just about anything you need to do. At some point, I&#8217;d like to explore how Zoho Creator can be used to create a members-only section of your Web site. In principal, it would be a simple use of Zoho&#8217;s JSON feeds and some javascript on your site. The javascript would load both the members list and the page contents on your site and ask the user for an identification. Once confirmed, the page could then load the appropriate content on the page.</li>
</ul>
<p>What I originally took to be a “fun toy” to play with for the rare times I needed to collect some information from users has turned into an indispensable tool for building a dynamic Web site. I&#8217;ve never encountered such a powerful application that was available absolutely free of charge!</p>
</p>
<p>So, whether you just want to gather some quick information from your users, create a &#8220;comments” section for your Web site, or develop advanced enterprise-grade applications for your personal or small business Web site, there&#8217;s no better application to use than Zoho Creator.</p>
</p>
<p>That&#8217;s all for today&#8230;</p>
<div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;">Blogged with the <a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser">Flock Browser</a></div>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/416WtwrKF8JbM5nv3-QoAZhZ_2I/0/da"><img src="http://feedads.g.doubleclick.net/~a/416WtwrKF8JbM5nv3-QoAZhZ_2I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/416WtwrKF8JbM5nv3-QoAZhZ_2I/1/da"><img src="http://feedads.g.doubleclick.net/~a/416WtwrKF8JbM5nv3-QoAZhZ_2I/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=pGMGzsC8y1Q:mFGPBpEsoGk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=pGMGzsC8y1Q:mFGPBpEsoGk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=pGMGzsC8y1Q:mFGPBpEsoGk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=pGMGzsC8y1Q:mFGPBpEsoGk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=pGMGzsC8y1Q:mFGPBpEsoGk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=pGMGzsC8y1Q:mFGPBpEsoGk:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/pGMGzsC8y1Q" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/05/03/what-can-zoho-creator-do-for-you/"&gt;What can Zoho Creator do for you?&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
What can Zoho Creator do for you? is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/05/03/what-can-zoho-creator-do-for-you/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/05/03/what-can-zoho-creator-do-for-you/</feedburner:origLink></item><item><title>Adding a more advanced RSS feed to your site</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/rDgky9OlyIw/</link><category>Level: Novice</category><category>RSS</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Mon, 31 Mar 2008 11:18:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=32</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/03/31/adding-a-more-advanced-rss-feed-to-your-site/">Adding a more advanced RSS feed to your site</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>In my <span style="color:#000080;"><u><a href="http://thewebforyou.blogspot.com/2008/03/adding-rss-feed-to-your-site.html">last post</a></u></span>, I explained how you could use <span style="color:#000080;"><u><a href="http://del.icio.us/">del.icio.us</a></u></span> to add a simple RSS feed to your site. The benefits of this method mainly lie in your ability to quickly and easily add any Web page to your feed, particularly if you make use of the browser buttons available from del.icio.us. Just navigate to the page you want to include in your feed, click the button, and enter a title, description, and tags. This method also allows you to easily create many feeds, and add items to as many of the feeds as you need all at the same time.</p>
<p>While this method should work well for the average Web site owner looking to create an RSS feed, it might not be suitable for every purpose. The two primary limitations to using del.icio.us to create and publish your RSS feed are the lack of rich text editing, and the 255 character limit to the description field. Many users may want to include more information in their RSS feed, or include graphics, links, and other information. For these users, del.icio.us may not be the best solution.</p>
<p>However, before you start creating a detailed RSS feed with lots of custom information in the feed itself, you need to understand the wide variety of standards for feed readers. Most importantly, it is important to understand that many feed readers are unable to capture both the Web page and the feed details together. Most online feed readers will only capture the description you enter into your RSS feed&#8217;s description section, and will give the users a link they can click on to view the page that you&#8217;ve referenced in the feed&#8217;s URL section. Locally installed feed readers, on the other hand, may have any number of different ways to display this information. For example, the feed reader I use at home is the built-in RSS aggregator available in <a href="http://www.mozilla.org">Mozilla Thunderbird</a>. This feed reader allows me to choose whether I want to view the feed details for all of my feeds, or just view the Web page (which is not available when I&#8217;m offline). I don&#8217;t have the option to customize this for individual feeds, and I don&#8217;t have the luxury of viewing both automatically. This presents a problem for me, since I read most of the RSS feeds I&#8217;ve collected while I&#8217;m offline. If I set my preferences to automatically show the Web page, I get a blank screen when I&#8217;m offline. However, if I set my preferences to view the feed details only, I typically get only a short paragraph or two, and have to wait until I&#8217;m online to read more. There are other applications, however, that do a better job of handling the problem of how to deliver a Web page and an RSS feed together. My favorite is the Microsoft Outlook plug-in, <a href="http://www.intravnews.com">IntraVnews</a>. This handy plug-in is free for personal use, and manages to download the RSS feed details as well as a copy of the referenced Web page. This is particularly handy for news feeds, as the articles may not be available on the Web for a long time. But since they&#8217;ve been physically downloaded and embedded into an Outlook message post, you can read them whenever you want.</p>
<p>Understanding the different ways your viewers will see and interact with your feed is very important. For example, if you are creating a feed that often refers people to external Web sites, you need to understand that many of them may never see your RSS feed description, which explains why the link was chosen for your feed. In these cases, it might be useful to use the <a href="http://www.awesomehighlighter.com/">Awesome Highlighter</a> recently featured on <span style="color:#000080;"><u><a href="http://www.lifehacker.com/366962/share-a-link-with-context-with-the-awesome-highlighter">Lifehacker</a></u></span>. This service allows you to send people to a unique URL that will display the page you want them to see, with the text you want them to see highlighted for them. It might not be as good as providing a brief description of the page, but it&#8217;s certainly better than nothing. Incidentally, the service is also good for providing a shortened URL to the page your referencing.</p>
<p>All of this is very important to understand if you&#8217;re serious about publishing an RSS feed, but it&#8217;s a bit beside the point for today. Since del.icio.us may not be the best solution for everyone&#8217;s RSS needs, I wanted to point out a way that you can create a free RSS feed that can contain more details, formatting, images, and other links (but try to remember that some people may never see all of the “extra” details you provide). If you need to provide a more detailed RSS feed, simply start a blog using one of the many free blogging tools available, such as <span style="color:#000080;"><u><a href="http://www.blogger.com/">Blogger.com</a></u></span>, <span style="color:#000080;"><u><a href="http://www.typepad.com/">TypePad.com</a></u></span>, <span style="color:#000080;"><u><a href="http://www.wordpress.com/">WordPress.com</a></u></span>, or the like. Once you&#8217;ve created your blog, you can easily add new posts with full rich-text capabilities. If you want to point the RSS feed to a location other than your blog, simply enter the appropriate URL into the “Link” field under your post title (at least, that&#8217;s where it is in Blogger&#8230;other services may vary, but should give you the option to specify a URL for your post). Your resulting RSS feed will simply refer to the Web sites you&#8217;ve entered, and no one will ever have to know that the feed originated with a blog, especially if you&#8217;re using FeedBurner to track your feed traffic.</p>
<p>Between del.icio.us and Blogger, anyone can quickly and easily create an RSS feed in minutes. And, if you follow the instructions in my last post, you can track how many people are subscribed to your feed, allow e-mail subscriptions, and enable visitors to your Web site to automatically “find” the RSS feed(s) you&#8217;ve made available.</p>
<p>If you&#8217;re still not sure about starting an RSS feed, here&#8217;s a quick tip&#8230;.go ahead and start one using either of the two methods I&#8217;ve described (or both). Your feeds will never be noticed until/unless you start promoting them by telling people how to find them. So, if you need to practice a little bit before you&#8217;re ready to commit to creating a formal RSS feed for your site, you can!</p>
<p>Once you&#8217;re confident that your RSS feed will be a valuable tool for your site visitors, just embed the links to it on your site and let people start subscribing. One word of caution, though&#8230;don&#8217;t get too hung up on checking your feed&#8217;s stats on FeedBurner. If you have a personal or small business Web site, you&#8217;re not likely to get thousands of subscribers to your feed right away, if ever. The stats FeedBurner provides are simply interesting information, but unless you have some serious goals for your Web site, trying to keep too close a tab on your stats will just be a waste of time, and likely a huge disappointment. As I&#8217;ve said before, the average personal or small business Web site is never going to directly compete with the “big dogs,” so don&#8217;t go in believing that just because you have a Web site you&#8217;ll have thousands of people visiting your site every day.</p>
<p lang="en-US"><span style="color:#000000;"><span style="font-size:100%;">That&#8217;s all for today. I hope you&#8217;re ready to create your RSS feed to start delivering your updates directly to the people who need to or want to know, rather than waiting for them to check in with your site.</span></span></p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/7KiOXbtU2e-cfaJwoJ_PkGEbcmo/0/da"><img src="http://feedads.g.doubleclick.net/~a/7KiOXbtU2e-cfaJwoJ_PkGEbcmo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7KiOXbtU2e-cfaJwoJ_PkGEbcmo/1/da"><img src="http://feedads.g.doubleclick.net/~a/7KiOXbtU2e-cfaJwoJ_PkGEbcmo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=rDgky9OlyIw:3RAOSMG0haU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=rDgky9OlyIw:3RAOSMG0haU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=rDgky9OlyIw:3RAOSMG0haU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=rDgky9OlyIw:3RAOSMG0haU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=rDgky9OlyIw:3RAOSMG0haU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=rDgky9OlyIw:3RAOSMG0haU:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/rDgky9OlyIw" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/03/31/adding-a-more-advanced-rss-feed-to-your-site/"&gt;Adding a more advanced RSS feed to your site&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Adding a more advanced RSS feed to your site is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/03/31/adding-a-more-advanced-rss-feed-to-your-site/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/03/31/adding-a-more-advanced-rss-feed-to-your-site/</feedburner:origLink></item><item><title>Adding an RSS feed to your site</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/ZFvEAjvyYoI/</link><category>Level: Intermediate</category><category>Microsoft Office Live Basics</category><category>RSS</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 23 Mar 2008 02:56:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=31</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/03/23/adding-an-rss-feed-to-your-site/">Adding an RSS feed to your site</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>A few months ago, I thought I was “back” to blogging, but it turns out I still had some unresolved issues. I&#8217;ve had a lot of trouble lately getting online to post to this blog and continue my explorations of all things Web-related. Fortunately, however, I think I&#8217;m finally ready to get back online on a regular basis to keep all of the tips and tricks coming here on <em>The Web for You.</em> I&#8217;m not making any promises at this point, but I&#8217;ll do my best.</p>
<p>In my <a href="http://thewebforyou.blogspot.com/2008/01/search-engine-optimization-malpractice.html">last post</a>, I told you I&#8217;d be describing how to add an <a href="http://www.commoncraft.com/rss_plain_english">RSS feed</a> to your Web site. When I first conceived of this project several months ago, I wasn&#8217;t sure how to proceed. For one thing, <a href="http://smallbusiness.officelive.com/">Microsoft Office Small Business Live</a> (MOSBL – formerly Microsoft Office Live) had several restrictions in place that made it difficult to add an RSS feed to your site. While several of these restrictions may still be in place if you&#8217;re using the default Web page editor, the good news is that even the free (Basic) version of MOSBL now allows you to use “third-party” design tools to build your site. That means that you&#8217;re no longer restricted to using only the existing design tool, and you can write your own HTML codes, including the META tags needed to add an RSS feed to your site (more on this later in this post). </p>
<p>Aside from the design issues with MOSBL, I was still at a loss with how to proceed. I came up with several ideas to use Web-based RSS-creation tools (such as the <a href="http://www.evolvepoint.com/blog/index.php/feedcraft-is-closing-down/">now-defunct</a> <a href="http://www.feedcraft.com/">FeedCraft</a> as well as my favorite app, <a href="http://creator.zoho.com/">Zoho Creator</a>). Unfortunately, both had serious drawbacks. FeedCraft, when it was available, only permitted users to create a single RSS feed. This was workable, but not ideal. Zoho Creator worked well, but unfortunately the links would only take you to the Zoho Creator record view, and not directly to the page referenced in the feed. Due to these drawbacks, I started experimenting with several offline feed creation tools, such as <a href="http://www.softwaregarden.com/products/listgarden/">ListGarden</a> (A very handy, free, and portable application that allows you to easily create both an RSS feed and an HTML version of the feed to display on your site). While these worked adequately, they all shared one common flaw&#8230;I had to manually upload the RSS feed to my Web site every time I modified it.</p>
<p>At long last, I realized that I was wasting my time. The simplest (and most efficient) tool for creating an RSS feed was right under my nose from the very beginning&#8230;<a href="http://del.icio.us/">Del.icio.us</a>. I imagine most of you are familiar with del.icio.us, but in case you aren&#8217;t, it&#8217;s one of the first and most successful <a href="http://www.commoncraft.com/bookmarking-plain-english" target="_blank">social bookmarking</a> sites around. Del.icio.us allows you to quickly and easily bookmark any Web page and tag it with any tag you want. The piece that I was forgetting about was that del.icio.us allows you to turn any tag (or your entire set of bookmarks) into an RSS feed automatically. After spending long hours with other solutions, I finally realized that I had the perfect tool to build an RSS feed for my Web site with my old friend, del.icio.us.</p>
<p>Getting started is simple&#8230;if you don&#8217;t already have a del.icio.us account, sign up for one at <a href="http://del.icio.us/">http://del.icio.us/</a> (free). To make things easier for you, del.icio.us offers you “browser buttons” &#8211; links you can add to your bookmarks that allow you to add new items to your del.icio.us favorites with just one click. Alternatively, you can manually add a favorite by clicking on the “new post” link. There are a few fields you need to fill in (filled in automatically if you use the browser buttons): The link URL, a name for the link, a description, and your tag(s). The first two are self-explanatory, but the description is the field where you can enter the text you want your readers to see when they click on or subscribe to your feed (sadly, there is a limit to the number of characters available, and it only supports plain text). The tags are where things get really useful. Create a tag that matches the name or title of your RSS feed, and that&#8217;s easy to remember (I might use LWHRSS for “Lockworld Herald RSS feed”). Once you have at least one item bookmarked, you can get the RSS feed link by going to del.icio.us/{username}/{tagname} and looking for the “RSS” link near the bottom of the page.</p>
<p>TIP: If you want to offer multiple RSS feed options, just create different tags to signify the different feeds. The nice thing is that you can add a new item simultaneously to as many of your feeds as you want just by adding the tag for each of your feeds to the same item. </p>
<p>Once you have the link, you&#8217;re ready to get going. But I&#8217;d recommend adding at least one extra step before you publicize your feed&#8230;connect it to <a href="http://www.feedburner.com/">FeedBurner</a> to track your subscribers and allow people to subscribe in any reader or via e-mail. That way, you can keep an eye on how many people are subscribed to your RSS feed at any point in time.</p>
<p>Setting up FeedBurner is as easy as creating a del.icio.us account. Simply log in or create a new account, then enter the URL of your RSS feed (the one you copied from your del.icio.us page) into the &#8220;Burn a feed right this instant&#8221; section. You will have to enter a feed title, so pick something short for your feed title (For example, this feed&#8217;s title is the easy-to-remember TheWebForYou. This will form the basis of your feed&#8217;s new URL (for example, <a href="http://feeds.feedburner.com/TheWebForYou">http://feeds.feedburner.com/TheWebForYou</a>). Once you&#8217;ve added this feed to FeedBurner, you will be able to generate a new, unique URL for your feed. This FeedBurner-based URL is the one you want to distribute to people, as it allows FeedBurner to track how many subscribers you have.</p>
<p>Once you have your new feed&#8217;s URL, you&#8217;re ready to add it to your Web site. The simplest way to do this is to just add a link to it on one of your Web pages. However, many modern browsers offer the ability to “auto-find” RSS feeds on a site. This is based on a META tag added to the HEAD section of the page&#8217;s HTML contents. For example, I&#8217;ve added the following META tag to each of my pages:<br />
<blockquote><span style="color:red;">&lt;link rel=&#8221;alternate&#8221; type=&#8221;application/rss+xml&#8221; title=&#8221;The Web for You (Blog)&#8221; href=&#8221;http://feeds.feedburner.com/TheWebForYou&#8221;&gt;</span></p></blockquote>
<p>The “rel” and “type” arguments should not be changed, but the “title” and “href” arguments should be customized to your new feed&#8217;s title and URL, respectively. </p>
<p>I&#8217;ve used one of my content management systems (ajaxincludes) to add this code (along with similar codes for each of my RSS feeds) to every page of my site automatically. First, I created all of the codes in a separate file, called inc-meta.inc (you can name it anything you want). Then, I used the AjaxIncludes script to dynamically add this to every page in my site using:</p>
<blockquote><p><span style="color:red;">&lt;script src=&#8221;/documents/script-ajaxinclude.txt&#8221;&gt;&lt;/script&gt;<br />&lt;script&gt;<br />ajaxincludes=”inc-meta.inc”<br />&lt;/script&gt;</span></p></blockquote>
<p>In this example, I have the main AjaxIncludes script stored in a separate file on my site at <a href="http://lockworldherald.com/documents/script-ajaxinclude.txt">http://lockworldherald.com/documents/script-ajaxinclude.txt</a> (Note: I use the .txt extension because of a javascript-caching restriction with MOSBL that prevents changes in javascript codes from showing up on the site immediately. You can use either the standard .js extension or the .txt extension). </p>
<p>By adding these few lines of script to every page of my site, I&#8217;ve enabled most browsers to auto-discover the RSS feeds I currently have to offer. And if I need to add or delete a feed, I only have to edit one file: inc-meta.inc. </p>
<p>By creating your RSS feed using del.icio.us, redirected through FeedBurner, and auto-detected on your site, you enable your visitors to quickly and easily subscribe to your feed using almost any browser, RSS reader, or even e-mail. The whole point of RSS is making it easy for your users to find and subscribe to your feed, and this serves the purpose quite well. </p>
<p>By using del.icio.us to add feed items, you have a quick and easy way to turn links to any Web page (or file, such as a PDF) into a custom RSS feed for your site. </p>
<p>TIP: Want to add an item to your RSS feed, but aren&#8217;t quite ready to make it visible to the whole world? You can either create a separate tag called “RSSDrafts” (or something similar that works for you), or just check the “make private” link when you add the bookmark. This will allow you to add the bookmark whenever you want, but wait to publish it until the time is right. </p>
</p>
<p>That&#8217;s all for today. See you next time (hopefully soon) here on <em>The Web for You.</em></p>
</p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/fPgrueSYszmpM_bEdYOewrEv81M/0/da"><img src="http://feedads.g.doubleclick.net/~a/fPgrueSYszmpM_bEdYOewrEv81M/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fPgrueSYszmpM_bEdYOewrEv81M/1/da"><img src="http://feedads.g.doubleclick.net/~a/fPgrueSYszmpM_bEdYOewrEv81M/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=ZFvEAjvyYoI:b8pr53tDwnE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=ZFvEAjvyYoI:b8pr53tDwnE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=ZFvEAjvyYoI:b8pr53tDwnE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=ZFvEAjvyYoI:b8pr53tDwnE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=ZFvEAjvyYoI:b8pr53tDwnE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=ZFvEAjvyYoI:b8pr53tDwnE:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/ZFvEAjvyYoI" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/03/23/adding-an-rss-feed-to-your-site/"&gt;Adding an RSS feed to your site&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Adding an RSS feed to your site is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/03/23/adding-an-rss-feed-to-your-site/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/03/23/adding-an-rss-feed-to-your-site/</feedburner:origLink></item><item><title>Search Engine Optimization Malpractice</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/hn1kHetey9s/</link><category>Articles</category><category>Level: Novice</category><category>SEO</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 13 Jan 2008 06:25:00 PST</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=30</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/01/13/search-engine-optimization-malpractice/">Search Engine Optimization Malpractice</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>In my last article, <em><a href="http://thewebforyou.blogspot.com/2007/11/search-engine-optimization-what-it-is.html">Search Engine Optimization: What it is, and why you shouldn&#8217;t care</a>,</em> I suggested that Search Engine Optimization (The practice of designing your Web page in such a way that it appears as high as possible in a list of search results) was not only misleading to both users and Web designers, but that it opened the door to malicious practices. To make matters worse, current SEO &#8220;rules&#8221; are suppressing many great innovations even while they allow deceitful Web sites to gain high rankings.</p>
<p>In a <a href="http://thewebforyou.blogspot.com/2007/11/search-engine-optimization-what-it-is.html#c6801966661054497736">comment</a> on my last article, <a href="http://www.blogger.com/profile/11134284173824765523">Frank</a> summarized what I expect are pretty general feelings about Search Engine Optimization. Essentially, Frank suggests that Search Engine Optimization helps provide &#8220;good no-nonsense copy that helps a searcher get their question answered.&#8221; Frank suggests that &#8220;search engines are not something to be fought but rather embraced.&#8221; In general terms, I agree completely. As I said, who could imagine life without search engines? And isn&#8217;t it obvious that Web designers should consider how their Web site will be placed in search engine results pages (SERPs) when they build their site? Of course it is. The basic ideas behind SEO are very valid, and are not to be fought.</p>
<p>Needless to say, however, there are some pretty significant flaws in the whole process that need to be addressed. This blog is primarily aimed at small business and personal Web site designers &#8211; people on a typically low budget who need to (or want to) build a Web site and attract visitors. In my last few posts, I&#8217;ve offered several different methods for building a <a href="http://thewebforyou.blogspot.com/search/label/Content%20Management">content management</a> system. The idea behind content management is that you can write the HTML code for your page once, and make changes frequently and easily without having to delve back into your page&#8217;s codes or re-upload your page or site every time. Unfortunately, every method of designing such a content management system has one major drawback: They make the page&#8217;s content completely invisible to search engines! This is, in my opinion, the most serious flaw in search engine technology. The robots and spiders used to index Web pages do not index any content delivered through JavaScript (which includes all of the content delivered by the easy-to-create content management systems I&#8217;ve described). Search engines view each Web page using a text-only process. For example, consider a recent <a title="Consider the Consequences: One Laptop per Child" href="http://lockworldherald.com/Documents/articles.aspx?article=0711-olpc">article</a> I wrote and placed on my site using my favorite content management system, <a href="http://www.texty.com/">Texty</a>. This lengthy article should show up (albeit far down in the list) in searches for &#8220;One Laptop per Child,&#8221; for example. Unfortunately, search engines will never see this term because they do not pay attention to the actual contents of the page. For comparison, take a look at the <a href="http://lockworldherald.com/Documents/articles.aspx?article=0711-olpc">article itself</a> and compare it to <a href="http://www.delorie.com/web/ses.cgi?url=http%3A%2F%2Flockworldherald.com%2FDocuments%2Farticles.aspx%3Farticle%3D0711-olpc">this page</a>, which shows what the search engines actually see. You&#8217;ll notice that not one word of the article appears to the search engines. This is bad enough, but consider an e-commerce site trying to build a manageable <a href="http://thewebforyou.blogspot.com/search/label/e-commerce">e-commerce</a> system. Their entire <a href="http://lockworldherald.com/Documents/catalog.aspx">catalog</a>, including any <a href="http://lockworldherald.com/Documents/productDetails.aspx?product=1">product details</a> pages, would be completely invisible to search engines (see <a href="http://www.delorie.com/web/ses.cgi?url=http%3A%2F%2Flockworldherald.com%2FDocuments%2Fcatalog.aspx">catalog</a> and <a href="http://www.delorie.com/web/ses.cgi?url=http%3A%2F%2Flockworldherald.com%2FDocuments%2FproductDetails.aspx%3Fproduct%3D1">detail</a> search engine views).</p>
<p>What does this mean to small business and personal Web site owners? Essentially, it means that without using more advanced (expensive) Web design and building tools, or spending much more time working with the raw HTML of their pages, their sites are forever banned from search engines results pages (SERPs). And, if their pages are not included in SERPs, no one will ever see them. Search Engine Optimization is almost impossible for small, low-budget Web sites. Although many people may think this is OK (after all, they might say, I don&#8217;t want to see a bunch of low-budget Web pages when I do a search!), small business owners know that the information they provide on their Web sites is just as valid as the information that larger Web sites have. Don&#8217;t they deserve a chance to be recognized?</p>
<p>My question to the search engines is, why not index the Web the way people actually see it? Why ignore content just because it is not hard-coded into the HTML for the site? Most search engines would reply that they use text-only indexing because most braille-based browsers for the blind view Web pages the same way (they only show the text-based content). Unfortunately, that&#8217;s not an answer, it just deflects the question &#8211; why, then, do braille-based browsers show only the HTML-derived text, and not the &#8220;true&#8221; content of the page? Search engines will also say that they only index the text-based portion of the page to prevent &#8220;tricks&#8221; that would display one type of content to the search-engines, and another to the viewer. In truth, however, using a text-only indexing method, search engines are allowing (possibly encouraging?) this practice, rather than preventing it. It would be very easy for me to put some search engine-friendly text within the HTML codes for my page, but then use the same content management tools I&#8217;m using to display different content to the user. This is actually a very common practice. Have you ever performed a search for something, clicked on one of the results, and found that the page did not have anything to do with what you were searching for? It could be that the page uses the search engine deficiencies to allow it to be indexed for one type of search, while displaying a completely different type of content to the viewer.</p>
<p>Fortunately for me, the contents of my site are meant to serve as examples of the techniques I describe in this blog. So if my Web pages are not indexed by Google or other search engines, I&#8217;m not too upset about it. However, many of my readers will not be so lucky. They are actually trying to attract customers or visitors to their site. How can they do this if the search engines are ignoring their good content?</p>
<p>It&#8217;s time for search engines to update their methodology to start indexing the Web as people actually see it. Rather than dictating how Web pages should be built, search engines should be accomodating the way pages <em>are really</em> made. While I don&#8217;t have any problems with the way search engines weight results based on incoming links to a particular page or site, I do have a serious objection to the practice of ignoring good content just because of the way it is delivered to the viewer. Let&#8217;s face it. Google, Microsoft, and Yahoo all have plenty of money to invest in research to find new ways to index the &#8220;true&#8221; Web. So why not start indexing what people see, rather than what Web developers are able to fit into the extremely narrow limits of outdated search engine tools?</p>
<p>That&#8217;s all for today. In my next post(s), I&#8217;ll talk about creating an RSS feed for your Web site. I&#8217;m also working on an interesting process for building and delivering an e-newsletter using <a href="http://creator.zoho.com/">Zoho Creator</a> to collect and manage subscriptions, build content, and deliver the e-mail. It&#8217;s been a pretty interesting project, and I&#8217;m looking forward to sharing it with you!
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/-35K0GD3dhj0L90pncAeCECYzPc/0/da"><img src="http://feedads.g.doubleclick.net/~a/-35K0GD3dhj0L90pncAeCECYzPc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-35K0GD3dhj0L90pncAeCECYzPc/1/da"><img src="http://feedads.g.doubleclick.net/~a/-35K0GD3dhj0L90pncAeCECYzPc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=hn1kHetey9s:cfWSWyR7rzI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=hn1kHetey9s:cfWSWyR7rzI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=hn1kHetey9s:cfWSWyR7rzI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=hn1kHetey9s:cfWSWyR7rzI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=hn1kHetey9s:cfWSWyR7rzI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=hn1kHetey9s:cfWSWyR7rzI:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/hn1kHetey9s" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/01/13/search-engine-optimization-malpractice/"&gt;Search Engine Optimization Malpractice&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Search Engine Optimization Malpractice is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } In my [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/01/13/search-engine-optimization-malpractice/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/01/13/search-engine-optimization-malpractice/</feedburner:origLink></item><item><title>I’m back!</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/8f5hXjMG1aQ/</link><category>Uncategorized</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 13 Jan 2008 06:20:00 PST</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=29</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/01/13/im-back/">I&#8217;m back!</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>It&#8217;s been a long time since I&#8217;ve updated <a href="http://thewebforyou.blogspot.com/"><em>The Web for You</em></a><em>: </em>It&#8217;s good to be back!</p>
<p>Thanks to all of my readers for your patience during my absense. I look forward to a new year filled with lots of ideas for harnessing the power of the Web for personal business, recreation, and communication.</p>
<p>In the upcoming year, I will finish my thoughts on SEO, give you some ideas for creating and managing RSS feeds for your Web site, explain how to create and manage an e-newsletter, talk about some great Open Source applications to help manage your growing Web presence, and much more.</p>
<p>One of the things I&#8217;m most excited about is the upcoming <a href="http://office.microsoft.com/en-us/officelive/FX102513631033.aspx">service improvements</a> to <a href="http://office.microsoft.com/en-us/officelive/FX101534261033.aspx">Microsoft Office Live Basics</a>. The most interesting improvement planned will be the ability to use third-party design tools to design your site. This means that you will not be restricted by the limitations of the current Web site design tools in Microsoft Office Live, which don&#8217;t allow you to change many aspects of the page (such as meta tags, RSS links, etc.) Once these changes are completed, I&#8217;m looking forward to redesigning my site and reporting back on these changes.</p>
<p>I&#8217;m looking forward to a great new year, and I&#8217;d like to thank all of my readers for their interest in <em><a href="http://thewebforyou.blogspot.com/">The Web for You</a>.</em>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/peWlZKcLD1k_CYRTAfMkhx2cwV0/0/da"><img src="http://feedads.g.doubleclick.net/~a/peWlZKcLD1k_CYRTAfMkhx2cwV0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/peWlZKcLD1k_CYRTAfMkhx2cwV0/1/da"><img src="http://feedads.g.doubleclick.net/~a/peWlZKcLD1k_CYRTAfMkhx2cwV0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=8f5hXjMG1aQ:B0t94LRydrs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=8f5hXjMG1aQ:B0t94LRydrs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=8f5hXjMG1aQ:B0t94LRydrs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=8f5hXjMG1aQ:B0t94LRydrs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=8f5hXjMG1aQ:B0t94LRydrs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=8f5hXjMG1aQ:B0t94LRydrs:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/8f5hXjMG1aQ" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/01/13/im-back/"&gt;I&amp;#8217;m back!&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
I&amp;#8217;m back! is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } It&amp;#8217;s been a long [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/01/13/im-back/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/01/13/im-back/</feedburner:origLink></item><item><title>LockworldHerald.com service problems</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/mCF4GhXbdNA/</link><category>Uncategorized</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 13 Jan 2008 06:18:00 PST</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=28</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2008/01/13/lockworldherald-com-service-problems/">LockworldHerald.com service problems</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>Hi all &#8211; just a quick note to let you know about some service problems with <a href="http://lockworldherald.com/">Lockworld Herald</a> that may impact <em><a href="http://thewebforyou.blogspot.com/">The Web for You</a>.</em> Microsoft is updating their free Office Live Basics service, which means that there will be some times that my Office Live Web site, LockworldHerald.com, will be down. In and of itself, this is not a big deal. But unfortunately, many of the design elements I&#8217;ve included in <em>The Web for You</em> come from codes, images, and other information saved on my Web site. Therefore, the appearance and functionality of <em>The Web for You </em>may be impacted by these service outages. There should be no impact to the RSS feed, only the actual <a href="http://thewebforyou.blogspot.com/">Web site</a>.
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/e-P82qBFvH3dqbsdh2_ldHo6qsg/0/da"><img src="http://feedads.g.doubleclick.net/~a/e-P82qBFvH3dqbsdh2_ldHo6qsg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/e-P82qBFvH3dqbsdh2_ldHo6qsg/1/da"><img src="http://feedads.g.doubleclick.net/~a/e-P82qBFvH3dqbsdh2_ldHo6qsg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=mCF4GhXbdNA:QxrqblOoPbQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=mCF4GhXbdNA:QxrqblOoPbQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=mCF4GhXbdNA:QxrqblOoPbQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=mCF4GhXbdNA:QxrqblOoPbQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=mCF4GhXbdNA:QxrqblOoPbQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=mCF4GhXbdNA:QxrqblOoPbQ:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/mCF4GhXbdNA" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2008/01/13/lockworldherald-com-service-problems/"&gt;LockworldHerald.com service problems&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
LockworldHerald.com service problems is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } Hi all &amp;#8211; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2008/01/13/lockworldherald-com-service-problems/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2008/01/13/lockworldherald-com-service-problems/</feedburner:origLink></item><item><title>To be continued</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/XQIzDmqXzDg/</link><category>Uncategorized</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Wed, 05 Dec 2007 21:23:00 PST</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=27</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/12/05/to-be-continued/">To be continued</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>I had hoped to write at least one more post before I had to do this, but I&#8217;m afraid I just haven&#8217;t had time. December is a pretty busy month for me, so I won&#8217;t have a chance to write any more for <em>The Web for You</em> until January, 2008.</p>
<p>I have at least one more post in my series on <a href="http://thewebforyou.blogspot.com/2007/11/search-engine-optimization-what-it-is.html">Search Engine Optimization</a>, which would include a response to Frank&#8217;s excellent <a href="http://thewebforyou.blogspot.com/2007/11/search-engine-optimization-what-it-is.html#c6801966661054497736">comment</a> in defense of the practices used by search engines.</p>
<p>I certainly believe search engines are a good thing, and, in principle, search engine optimization is a wonderful tool to help Web site owners establish their content as valid and authoritative. However, there are certain aspects of today&#8217;s practices in indexing Web sites that make it harder for small businesses and personal Web sites to gain high rankings in the search engines, while allowing &#8220;gamed&#8221; Web sites to boost their rankings without displaying quality content.</p>
<p>I&#8217;ll continue this conversation in early January, and I hope you&#8217;ll all be patient with me in the mean time.</p>
<p>Happy Holidays and Merry Christmas to all&#8230;see you in January.
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/XHRoIx1v8pEhFu8SzFgvHsGs5M0/0/da"><img src="http://feedads.g.doubleclick.net/~a/XHRoIx1v8pEhFu8SzFgvHsGs5M0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XHRoIx1v8pEhFu8SzFgvHsGs5M0/1/da"><img src="http://feedads.g.doubleclick.net/~a/XHRoIx1v8pEhFu8SzFgvHsGs5M0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=XQIzDmqXzDg:IAKOmBqNOAc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=XQIzDmqXzDg:IAKOmBqNOAc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=XQIzDmqXzDg:IAKOmBqNOAc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=XQIzDmqXzDg:IAKOmBqNOAc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=XQIzDmqXzDg:IAKOmBqNOAc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=XQIzDmqXzDg:IAKOmBqNOAc:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/XQIzDmqXzDg" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/12/05/to-be-continued/"&gt;To be continued&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
To be continued is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } I had hoped [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/12/05/to-be-continued/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/12/05/to-be-continued/</feedburner:origLink></item><item><title>Search Engine Optimization: What it is, and why you shouldn’t care</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/vky-pKejoq8/</link><category>Articles</category><category>Level: Novice</category><category>SEO</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Mon, 19 Nov 2007 01:34:00 PST</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=26</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/11/19/search-engine-optimization-what-it-is-and-why-you-shouldnt-care/">Search Engine Optimization: What it is, and why you shouldn&#8217;t care</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>Search Engine Optimization (SEO): It&#8217;s a term any Web developer is intimately familiar with, and even the most novice Web site owner/developer/writer has heard of. But if you&#8217;re just getting started with building your own Web presence, you may not really understand what this term is all about, or how important it is to you.</p>
<p>In simple terms, search engine optimization refers to the practice of designing Web pages to show up as high as possible in the list of results shown when a person searches the Web. Most Web developers spend considerable amounts of time studying exactly what the major search engines use to determine placement in the list of results. Although search engines design the results page to make it seem that they have scoured the entire Internet and returned the page with the results most relevant to your search terms, this is not entirely true (Actually, it&#8217;s just short of a bald-faced lie). In truth, search engines look at a wide variety of factors to determine placement, not just how closely the text on the destination Web page matches the text you are searching for. There are many other factors being considered, including hidden HTML codes inside your page called META tags. These tags were initially designed to allow Web designers to give search engines a brief description of your Web site/page&#8217;s contents and some suggested keywords that apply to your page without displaying this to the visitor, but that are often misused and abused today. Search engines also display sites that are updated frequently higher in their results than sites with more static information. Although this sounds like a good idea, keep in mind that not all content needs to be regularly updated. A good source of information on the life and death of Socrates probably doesn&#8217;t need to be updated on a weekly basis. But by far the most common measure of your site&#8217;s quality, according to most search engines, is the number of other Web pages which link to your site. And links to your site from sites that are ranked higher in the search results page count more than sites that the search engines have ranked lower. The number of visitors to your site also plays a vital role in the placement the search engines give to your Web site.</p>
<p>I can&#8217;t begin to imagine how much money is spent every year by people trying to &#8220;optimize&#8221; their Web sites to improve their placement in search results, but I suspect it is, at the least, a multi-billion dollar-per-year industry. Web site owners and developers spend countless hours tweaking words or codes on their site to raise their rank one or two places. And then there are the scams, the frauds, and the tricksters who convince people to spend good money on a product, practice, or service they claim will improve a site&#8217;s search engine ranking.</p>
<p>Once a servant of the Web with a noble goal of helping visitors find their way, search engines have become the cruel, unforgiving masters of the Internet, and almost all Web sites succeed or fail based on their search engine rankings. But this should not be the case.</p>
<p>I&#8217;m not at all opposed to search engines. I use them daily at work and at home. And I&#8217;m a big fan of some of the spin-off technology from search engines such as Google (This blog is provided on a Google-owned platform, and if you haven&#8217;t tried some of free software offered in the <a href="http://www.google.com/pack" target="_blank">Google Pack</a>, you&#8217;re missing out). Search engines are, of course, a necessity for the World Wide Web. Who could imagine life without Google, Yahoo!, MSN Live, or Ask.com? And, to a certain extent, search engine optimization is and will continue to be a necessity as well. But not in its current state.</p>
<p>But there&#8217;s a distinct difference between thinking about search engine placement as you design a Web page or write an article, and spending more time worrying about how the search engines will see your Web site than you do about how your visitors will see it. Unfortunately, the balance has tipped. In the early days of the Web, Web site designers and content writers came up with their own best ideas, and the search engines tried to lead people to the content. Now, search engines dictate the rules and regulations for building a search-friendly Web site, and Web designers contort their ideas and content to fit into these &#8220;guidelines.&#8221; If you want your site to be noticed, you simply have no choice but to build it according to the standards set by Google, Yahoo!, and MSN. Therefore, most Web designers spend considerable amounts of time and money learning the rules of SEO before writing a single line of code or content.</p>
<p>While that may not sound bad, it is often what I consider to be a fatal mistake of most entry-level Web sites. If you&#8217;re trying to sell a product online, for example, you can&#8217;t go in it thinking you&#8217;re going to be able to compete with sites like Amazon.com right out of the gate. Yet most start-up Web sites immediately start worrying about search engine optimization, and invest all of their time and/or capital in trying to increase their search engine ranking, rather than trying to get their business up and running. The fact is, however, that a new Web site is, by default, entering a very over-saturated market. Trying to get the site running by making sure it shows up within the first page of search results is just the wrong way to go about things. Developers need to start with a smaller vision&#8230;trying to capture interest in their small niche and gradually expand their influence and impact as people slowly begin to notice them and turn to them as a source of information or reliable goods and services. Instead, start-ups need to think outside of the Web and imagine how they might start up a company in the &#8220;real&#8221; world. If you want to start a new newspaper, for example, you probably don&#8217;t want to jump right out of the gate by spending tens of thousands of dollars on putting up a billboard in Times Square urging millions of readers to subscribe to your paper instead of the <em>New York Times.</em> Instead, you might start out with a smaller audience, smaller expectations, and a smaller purpose. Start a neighborhood newspaper, or ask your local coffee house if they will hand out copies of your newspaper and try to build up an audience gradually. The same holds true for the World Wide Web. You have to figure it will take, at a minimum, several years for you to build up a sizeable Web presence by starting off small and slowly spreading the word about what you have to offer. And if your goal is to make money from your Web presence, you probably don&#8217;t want to quit your day job until you have successfully established an unshakable place in the market.</p>
<p>Search engine optimization should not be the life or death of a Web site. Good marketing, good PR, and an excellent resource, product, or service should be the keys to success. Don&#8217;t mistake search engines for PR and marketing, either. They do not serve either purpose, although many people treat them as if they do. In fact, most of us are guilty of, at least sometimes, believing that the top few search results are the &#8220;most reliable&#8221; that we are going to find. Yet, honestly, most of us are also far more likely to trust a link provided to us by a Web site we know and trust as a reliable source of information even more than the &#8220;most reliable&#8221; search engine result. As a general rule, gradually building up your Web site to serve the needs of your visitors will, over the course of several years, also increase your search engine placement. So it&#8217;s a much better idea to think small at first and grow gradually, rather than trying to attract millions of people to your Web site the first day it goes live on the Web.</p>
<p>It&#8217;s time to move past letting the search engines dictate how the Web is built, and who gets to see it. If more Web sites would worry about providing good content, products, or services than search engine placement, the quality, influence, and general usefulness of the Web sill grow exponentially.</p>
<p>That&#8217;s all for today. I&#8217;ll dig into this a little deeper in my next post when I explain how the search engine giants are suppressing many new innovations that could exponentially expand the size and influence of the Web even while they allow poorly designed, insidious Web sites to attain prominent placement in their search results.  I&#8217;ll also touch on how the burden of SEO on Web developers has led to a whole new level of greed and theft with the introduction of search engine advertisements.</p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/HlBhHC0_58DYQFiddMhdP71DSkw/0/da"><img src="http://feedads.g.doubleclick.net/~a/HlBhHC0_58DYQFiddMhdP71DSkw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HlBhHC0_58DYQFiddMhdP71DSkw/1/da"><img src="http://feedads.g.doubleclick.net/~a/HlBhHC0_58DYQFiddMhdP71DSkw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=vky-pKejoq8:AafKujYcBXg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=vky-pKejoq8:AafKujYcBXg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=vky-pKejoq8:AafKujYcBXg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=vky-pKejoq8:AafKujYcBXg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=vky-pKejoq8:AafKujYcBXg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=vky-pKejoq8:AafKujYcBXg:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/vky-pKejoq8" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/11/19/search-engine-optimization-what-it-is-and-why-you-shouldnt-care/"&gt;Search Engine Optimization: What it is, and why you shouldn&amp;#8217;t care&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Search Engine Optimization: What it is, and why you shouldn&amp;#8217;t care is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/11/19/search-engine-optimization-what-it-is-and-why-you-shouldnt-care/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/11/19/search-engine-optimization-what-it-is-and-why-you-shouldnt-care/</feedburner:origLink></item><item><title>New Article: "Consider the consequences: One Laptop Per Child"</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/aXxTc3F-wC8/</link><category>Articles</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Fri, 16 Nov 2007 13:45:00 PST</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=25</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/11/16/new-article-consider-the-consequences-one-laptop-per-child/">New Article: &quot;Consider the consequences: One Laptop Per Child&quot;</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>I have recently published a new article on <a href="http://lockworldherald.com/documents/articles.aspx?article=0711-OLPC">LockworldHerald.com</a>. While not written specifically for this blog, I think it might appeal to readers of this blog as well as to other visitors to my site, so I wanted to share it with you.</p>
<p>In <em><a href="http://lockworldherald.com/documents/articles.aspx?article=0711-olpc">Consider the consequences: One laptop Per Child</a>,</em> I give my opinion about the &#8220;One Laptop Per Child,&#8221; and similar initiatives to provide low-cost computers to developing countries. I think these programs are wonderful, but that few people have stopped to consider the implications of making technology universal in third-world countries while maintaining the digital divide in first-world countries.</p>
<p><strong>Redistribution:</strong><br />This article is available to republish on your Web site, thanks to <a href="http://www.texty.com/">Texty&#8217;s</a> simplified content management system. I&#8217;ve made the javascript code available on the Web site so anyone can republish this article, provided I am credited as the author and no changes are made to the content. The license for this work, as well as the copyright notice and author information, is included in the Texty, so this article can safely be published on any Web site as is. I would appreciate anyone who republishes this content to let me know where it will be used by filling out the form under the &#8220;republish&#8221; link on the article.
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/VnZG7XnLc-xbB0Xpx82mNMctuss/0/da"><img src="http://feedads.g.doubleclick.net/~a/VnZG7XnLc-xbB0Xpx82mNMctuss/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VnZG7XnLc-xbB0Xpx82mNMctuss/1/da"><img src="http://feedads.g.doubleclick.net/~a/VnZG7XnLc-xbB0Xpx82mNMctuss/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=aXxTc3F-wC8:YJIMA4yX5D8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=aXxTc3F-wC8:YJIMA4yX5D8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=aXxTc3F-wC8:YJIMA4yX5D8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=aXxTc3F-wC8:YJIMA4yX5D8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=aXxTc3F-wC8:YJIMA4yX5D8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=aXxTc3F-wC8:YJIMA4yX5D8:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/aXxTc3F-wC8" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/11/16/new-article-consider-the-consequences-one-laptop-per-child/"&gt;New Article: &amp;quot;Consider the consequences: One Laptop Per Child&amp;quot;&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
New Article: &amp;#34;Consider the consequences: One Laptop Per Child&amp;#34; is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/11/16/new-article-consider-the-consequences-one-laptop-per-child/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/11/16/new-article-consider-the-consequences-one-laptop-per-child/</feedburner:origLink></item><item><title>Content Management: Building a sitemap for your dynamic Texty content</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/KQWZrVuwCqw/</link><category>Content Management</category><category>Level: Advanced</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sat, 10 Nov 2007 22:35:00 PST</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=24</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/11/10/content-management-building-a-sitemap-for-your-dynamic-texty-content/">Content Management: Building a sitemap for your dynamic Texty content</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>If you followed along with my last series of posts, I&#8217;ve showed you how to build a customized <a href="http://thewebforyou.blogspot.com/2007/10/advanced-content-management-using.html">content management system</a> into your Web site using <a href="http://thewebforyou.blogspot.com/2007/09/new-project-content-management.html">AjaxIncludes</a>, <a href="http://thewebforyou.blogspot.com/2007/09/content-management-using-json-feeds.html">Zoho Creator&#8217;s JSON feeds</a>, and the powerful <a href="http://thewebforyou.blogspot.com/2007/10/content-management-simplified-texty.html">Texty SCMS</a> (Simple Content Management System). In this last post of this series, I want to show you how you can expand the same principal to not only deliver the content to your site, but to build a simple sitemap to help your users find content within your site.
<p>As with the other content management systems I&#8217;ve discussed, the actual text delivered to your Web site will <strong><em>not</em></strong> be indexed by search engines such as Google. Most major search engines ignore any text delivered to your page via javascript or other scripting methods that take place in the browser, rather than on the server. If you happen to have a Web site that allows you to run javascript codes on the server side, you can avoid problems with indexing your site content by adding a code within your &lt;script&gt; tag to tell the server to run the code before delivering the page to your user. Simply change &lt;script&gt; to &lt;script runat=server&gt;. However, if you are using <a href="http://office.live.com/">Microsoft Office Live Basics</a>, you can not run any scripts at the server level, so you have to find some other way to deliver your content. I will spend a little time discussing the problems this presents to individuals and small businesses trying to establish a Web presence in the next series of posts.</p>
<p>Essentially, you will use the same procedure I outlined in my <a title="Advanced Content Management: Using AjaxIncludes, JSON feeds, and Texty together" href="http://thewebforyou.blogspot.com/2007/10/advanced-content-management-using.html" target="_blank">last post</a> to build your sitemap as you do to build your general page. In fact, you can use the code below on a single page and, if a specific article is requested in the URL (articles.aspx?271), the article will be displayed. If no article is requested&nbsp;&nbsp;(articles.aspx) or a nonexistent article is requested, the user will be shown a Table of Contents. This is nice because your single page serves a dual purpose. As before, you want to load your Zoho Creator JSON code into your page and then go through the records one by one. This time, however, instead of only writing out a single story, you will want to write out all of your stories&#8230;</p>
<p>Below is a sample code based on the following assumptions:</p>
<ol>
<li>You have already generated a Zoho Creator database to hold your Texty codes. This database has the following fields: TextyID (a code you assign to this texty when you put it in the database. Depending on your needs, this could be a number, the default Zoho ID, a short word-description, or a combination of values), Title (A short title to display), TextyCode (The &lt;script&gt; code generated by Texty, which you want to include in the page.</li>
<li>You are using a single value to identify each texty (Instead of &#8220;texty.asp?page=27&#8243; or &#8220;texty.asp?article=TGIF&#8221;, you are using only a single value like &#8220;texty.asp?47&#8243; or &#8220;texty.asp?MOLB&#8221;).</li>
<li>Your Zoho Creator database is already sorted by the appropriate field.</li>
<li>You are using Microsoft Office Live Basics (or a similar Web page that allows only HTML codes, not server-side scripting languages such as ASP.NET or PHP).</li>
</ol>
<div style="background-color:whitesmoke"> &nbsp;&nbsp; &lt;!&#8211;Load your Zoho Creator Data&#8211;&gt;<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type=&#8221;text/javascript&#8221; src=&#8221;http://creator.zoho.com/<strong><span style="color:#ff0000;">{Username}</span></strong>/json/<strong><span style="color:#ff0000;">{View Number}</span></strong>/&#8221;&gt;&lt;/script&gt;<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&gt;<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;<span&nbsp;&nbsp;style="color:#009900;">//Parse out the attributes from the URL</span><br/><br />&nbsp;&nbsp;&nbsp;&nbsp;var winloc=&#8221;"+top.window.location;<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;var winsplit=winloc.split(&#8220;?&#8221;);<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;var marker=&#8221;";<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (winsplit.length&gt;1){ <span style="color:#009900;">//If an attribute is found in the URL</span><br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (var i=0; i&lt;zoho<strong><span style="color:#ff0000;">{Username}</span></strong>view<strong><span style="color:#ff0000;">{View number}</span></strong>.Texty.length; i++){<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var NewArray=zoho<strong><span style="color:#ff0000;">{Username}</span></strong>view<strong><span style="color:#ff0000;">{View number}</span></strong>.Texty[i];<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var val=NewArray.TextyID;<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val = val.toLowerCase();<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var thisparam=winsplit[1].toLowerCase();<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (thisparam==val){<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Texty=NewArray.TextyCode;<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; marker=&#8221;content&#8221;; <span style="color:#009900;">//Content has been found&#8230;display content instead of Table of Contents</span><br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.writeln(&#8216;&lt;scr&#8217;+'ipt type=&#8221;text/javascript&#8221; language=&#8221;javascript&#8221; src=&#8217;+TextySource+&#8217;&gt;&lt;/scr&#8217;+'ipt&gt;&#8217;);<br/><br />&nbsp;&nbsp;<span style="color:#009900;">//Write the content on your page</span><br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (NewArray.Title&gt;&#8221;"){<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.title=NewArray.Title; <span style="color:#009900;">//Make the page title match the Texty title</span><br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;else { <span style="color:#009900;">//No parameter found in the URL</span><br/><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#009900;">//Write out a link to each page you have entered in your database to create a Table of Contents</span><br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (var i=0; i&lt;zoho<strong><span style="color:#ff0000;">{Username}</span></strong>view<strong><span style="color:#ff0000;">{View number}</span></strong>.Texty.length; i++){<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var NewArray = zoho<strong><span style="color:#ff0000;">{Username}</span></strong>view<strong><span style="color:#ff0000;">{View number}</span></strong>.Texty[i];<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var Title = NewArray.Title;<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var val = NewArray.TextyID;<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.writeln(&#8216;&lt;p&gt;&lt;a href=&#8221;articles.aspx?&#8217;+val+&#8217;&#8221; title=&#8221;&#8216;+Title+&#8217;&#8221;&gt;&#8217;+Title+&#8217;&lt;/a&gt;&lt;/p&gt;&#8217;);<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#009900;">//If parameters passed in the URL do not match any content, clean up the URL by removing failed parameters. This prevents people from bookmarking incorrect pages, and allows the &#8220;Table of Contents&#8221; script above to run</span><br/><br />&nbsp;&nbsp;&nbsp;&nbsp;if (winsplit.length&gt;1 &amp;&amp; marker==&#8221;"){<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location.replace(&#8220;/documents/articles.aspx&#8221;);<br/><br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&lt;/script&gt;</div>
</p>
<p>This relatively simple script allows you to, essentially, create an entire Web site by coding only a single page and using Texty&#8217;s powerful content management system to deliver variable content to that single page. I think Texty is an excellent solution for this, but just for your information, this same type of content management system can be used with files stored on your Web site. Instead of loading the Texty script containing the identified content, you can use <a href="http://thewebforyou.blogspot.com/2007/09/new-project-content-management.html">AjaxIncludes</a> to write the contents of a file on your site into the page (Some people have expressed concerns about Texty&#8217;s future in the crowded Web 2.0 marketplace, although I hope/believe Texty is here to stay).</p>
<p>Please keep in mind that none of the content management systems I have described in this blog will allow search engines to properly index your Web site and display your Web pages in search results. To ensure your pages are optimized for search engines, you would need to write your codes on the server-side using a scripting language like ASP.NET or PHP. However, I have yet to find a free Web hosting solution that offers these scripting languages, and I don&#8217;t want to pay money for my Web site, so I stick with my SEO-free pages, and rely on my blog to drive traffic to my site (<a href="http://lockworldherald.com/documents/">LockworldHerald.com</a>).</p>
<p>To be honest, though, I&#8217;m quite happy that my site is improperly indexed by Google and other major search engines. I&#8217;ll explain why I feel this way in my next series of posts, which will provide a very rough sketch of how search engines view your Web site, and why none of them are doing the job properly.</p>
<p>That&#8217;s all for today. I know that this blog has become increasingly technical over the past few months, which is fine with me. However, I originally intended this blog to help out not only the advanced HTML-coder and site designer, but to also be of more use for the middle- and entry-level users. Furthermore, I want to do more reviews of other free Web resources besides Microsoft Office Live Basics and Zoho Creator. I&#8217;m looking forward to getting &#8220;back to the basics&#8221; in addition to writing more advanced content.</p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/1PAJb9eDpIri52xtDcCvy8d08T8/0/da"><img src="http://feedads.g.doubleclick.net/~a/1PAJb9eDpIri52xtDcCvy8d08T8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1PAJb9eDpIri52xtDcCvy8d08T8/1/da"><img src="http://feedads.g.doubleclick.net/~a/1PAJb9eDpIri52xtDcCvy8d08T8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=KQWZrVuwCqw:RnCa6tI6tFU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=KQWZrVuwCqw:RnCa6tI6tFU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=KQWZrVuwCqw:RnCa6tI6tFU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=KQWZrVuwCqw:RnCa6tI6tFU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=KQWZrVuwCqw:RnCa6tI6tFU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=KQWZrVuwCqw:RnCa6tI6tFU:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/KQWZrVuwCqw" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/11/10/content-management-building-a-sitemap-for-your-dynamic-texty-content/"&gt;Content Management: Building a sitemap for your dynamic Texty content&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Content Management: Building a sitemap for your dynamic Texty content is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/11/10/content-management-building-a-sitemap-for-your-dynamic-texty-content/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/11/10/content-management-building-a-sitemap-for-your-dynamic-texty-content/</feedburner:origLink></item><item><title>Update to code from previous post</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/TVOA_SNJRfc/</link><category>Content Management</category><category>Level: Advanced</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Mon, 22 Oct 2007 07:14:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=23</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/10/22/update-to-code-from-previous-post/">Update to code from previous post</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>My apologies, but I left out a critical element from the code in <a href="http://thewebforyou.blogspot.com/2007/10/advanced-content-management-using.html">my last post</a>. If you use the code I originally posted, it will write <strong><em>ALL</em></strong> of your Texty&#8217;s into a single page.</p>
<p>I should have included a line that will compare the actual URL with the values from your JSON feed to determine whether or not to write a particular Texty:</p>
<p>if (val==winval){<br />document.writeln(Texty);<br />}</p>
<p>Here&#8217;s the corrected code (I&#8217;ve also corrected the code in the original post):</p>
<table style="BORDER-RIGHT: 2px; BORDER-TOP: 2px; BORDER-LEFT: 2px; WIDTH: 100%; BORDER-BOTTOM: 2px; BACKGROUND-COLOR: whitesmoke; cellpadding: 7">
<tbody>
<tr>
<td>
<p>&lt;html&gt;</p>
<p>&lt;head&gt;</p>
<p><span style="color:#006600;">//Optional: Your default page title, which can be changed based on the Texty you include </span></p>
<p>&lt;title&gt; <strong><span style="color:#ff0000;">Your Site Title </span></strong>&lt;/title&gt;</p>
</p>
<p><span style="color:#006600;">//Load your JSON feed from your Zoho Creator application: </span></p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;http://creator.zoho.com/ <strong><span style="color:#ff0000;">{Username} </span></strong>/json/ <strong><span style="color:#ff0000;">{View number} </span></strong>/ <strong><span style="color:#ff0000;">{Private Link &#8211; Optional} </span></strong>/&#8221;&gt;&lt;/script&gt; </span></p>
<p></span></p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;/Documents/AjaxIncludes.txt&#8221;&gt;&lt;/script&gt; </span></p>
<p>&lt;/head&gt; </span></p>
<p>&lt;body&gt; </p>
</p>
<p>
<p>&lt;script&gt;<br />ajaxincludes(&#8220;banner.htm&#8221;);<br />ajaxincludes(&#8220;navigation.htm&#8221;);<br />&lt;/script&gt; </p>
<p>
<p><p><span style="color:#006600;">&lt;!&#8211;Identify and Insert the appropriate Texty from your list here&#8211;&gt; </span></p>
<p>&lt;script&gt; </p>
</p>
<p><span style="color:#006600;">//Identify the parameters passed through the URL: </span></p>
<p><span style="color:#006600;">// Example &#8211; </span><a href="http://lockworldherald.com/Documents/articles.aspx?Home">http://lockworldherald.com/Documents/articles.aspx?Home</span></a></span></p>
<p>var winloc=&#8221;"+top.window.location;<br /></span>var winsplit=winloc.split(&#8220;?&#8221;); </p>
</p>
<p><span style="color:#006600;">//If a value is found, match it to the appropriate Texty script from your Zoho Creator database </span></p>
<p>if (winsplit.length&gt;1) {<br />for (var i=0; i&lt;zoho<strong><span style="color:#ff0000;">{Username}</span></strong>view<strong><span style="color:#ff0000;">{View Number}</span></strong>.<strong><span style="color:#ff0000;">{Form Name}</span></strong>.length; i++){<br />var NewArray=zoho<strong><span style="color:#ff0000;">{Username}</span></strong>view<strong><span style="color:#ff0000;">{View Number}</span></strong>.<strong><span style="color:#ff0000;">{Form Name}</span></strong>[i];<br />var val=NewArray.Value;<br />var Texty=NewArray.TextyCode;</p>
<p><span style="color:#006600;">//It is a good idea to convert everything to lowercase, since javascript is case-sensitive. This way, if your page value is &#8220;superman,&#8221; your user could enter &#8220;Superman,&#8221; &#8220;SUPERMAN,&#8221; or &#8220;superman&#8221; and still get the the correct page: </span></p>
<p>val = val.toLowerCase();<br />var winval = winsplit[1].toLowerCase();
<p style="COLOR: #006600">//Updated code begins here</p>
<p><span style="color:navy;">if (val==winval){<br />document.writeln(Texty);<br />}
</p>
<p style="COLOR: #006600">//End updated coce</p>
<p><span style="color:#006600;">//If you choose to change the Page Title for your records, include this code: </span></p>
<p>if (NewArray.Page_title&gt;&#8221;") {<br />document.title=NewArray.Page_title;<br />}<br />}<br />} </p>
</p>
<p><span style="color:#006600;">//It is a good idea to add something here in case someone fails to enter a parameter into the page. Either redirect them to a page which will always exist, or else put the script for a fixed Texty here. </span></p>
<p>else {<br />location.replace(&#8220;http://yoursite.com/Documents/Testy.aspx?<span style="color:#ff0000;"><strong>Value</strong></span>&#8220;);</p>
</p>
<p><span style="color:#006600;">// OR </span></p>
</p>
<p>document.writeln(&#8216;&lt;scr <strong zid="433"><span style="color:#000099;">&#8216;+&#8217; </span></strong>ipt type=&#8221;text/javascript&#8221; language=&#8221;javascript&#8221; src=&#8221;http://texty.com/cms/syndicate/ <strong>{Your Unique URL} </strong>.js&#8221;&gt;&lt;/scr <strong><span style="color:#000099;">&#8216;+&#8217; </span></strong>ipt&gt;&#8217;); </p>
<p><span style="color:#006600;">//NOTE: If you want to include the Texty within this code, you have to make sure you split up the &lt;script&gt; and &lt;/script&gt; tags as I have done in the example above. Otherwise, your browser may get confused between a document.writeln(&#8220;&lt;/script&gt;&#8221;); and a regular &lt;/script&gt;, which can cause your javascript code to cease functioning. </span></p>
</p>
<p>} </p>
</p>
<p>&lt;/script&gt; </p>
<p><span style="color:#006600;">&lt;!&#8211;End Texty Script&#8211;&gt; </span></p>
</p>
<p>&lt;script&gt; </p>
<p>ajaxincludes(&#8220;footer.htm&#8221;); </p>
<p>&lt;/script&gt;</p>
<p>
<p>&lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p></span></td>
</tr>
</tbody>
</table>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/yXqvtOm_teLnRy03y1BoJXElAbU/0/da"><img src="http://feedads.g.doubleclick.net/~a/yXqvtOm_teLnRy03y1BoJXElAbU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yXqvtOm_teLnRy03y1BoJXElAbU/1/da"><img src="http://feedads.g.doubleclick.net/~a/yXqvtOm_teLnRy03y1BoJXElAbU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=TVOA_SNJRfc:QBotob7yw9c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=TVOA_SNJRfc:QBotob7yw9c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=TVOA_SNJRfc:QBotob7yw9c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=TVOA_SNJRfc:QBotob7yw9c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=TVOA_SNJRfc:QBotob7yw9c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=TVOA_SNJRfc:QBotob7yw9c:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/TVOA_SNJRfc" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/10/22/update-to-code-from-previous-post/"&gt;Update to code from previous post&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Update to code from previous post is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/10/22/update-to-code-from-previous-post/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/10/22/update-to-code-from-previous-post/</feedburner:origLink></item><item><title>Advanced Content Management: Using AjaxIncludes, JSON feeds, and Texty together</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/2VCXD7_MlZk/</link><category>Content Management</category><category>Level: Advanced</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 21 Oct 2007 01:23:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=22</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/10/21/advanced-content-management-using-ajaxincludes-json-feeds-and-texty-together/">Advanced Content Management: Using AjaxIncludes, JSON feeds, and Texty together</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
</p>
<p zid="94">Digging a little deeper, we find that Texty can even be used with more advanced features. Let me show you how to combine <a href="http://thewebforyou.blogspot.com/2007/09/new-project-content-management.html" target="_blank" zid="23">AjaxIncludes </a>, <a href="http://thewebforyou.blogspot.com/2007/09/content-management-using-json-feeds.html" target="_blank" zid="21">JSON feeds from Zoho Creator </a>, and <a href="http://thewebforyou.blogspot.com/2007/10/content-management-simplified-texty.html" target="_blank" zid="22">Texty content management </a>into a single powerful site-building tool. </p>
<p zid="470">
<p zid="98">
<p zid="99">First, you will want to use the AjaxIncludes scripts to build your site framework. Remember that these elements will not be indexed as part of your site, but that&#8217;s OK because they are just the design elements of your page. This can include items like your page banner, navigation structure, and a blank &#8220;block&#8221; for your page&#8217;s content. I&#8217;ll use the following assumptions in this example: </p>
<ul zid="174">
<li zid="175">
<div zid="176">You are using Microsoft Office Live Basics (MOLB), so all of your files are stored in the same directory: http://yoursite.com/Documents/. </div>
<li zid="129">
<div zid="177">You have already saved a copy of the AjaxIncludes script from Dynamic Drive as a separate file in your site at http://yoursite.com/Documents/AjaxIncludes.txt (You don&#8217;t want to save files with the &#8220;.js&#8221; extension if you are using MOLB). </div>
<li zid="178">
<div zid="179">You have created the following files to provide the framework for your site: </div>
<ul zid="180">
<li zid="163">
<div zid="135">banner.htm (The main banner for your page) </div>
<li zid="164">
<div zid="165">navigation.htm (The top navigation structure for your page) </div>
<li zid="166">
<div zid="167">footer.htm (The footer for your page) </div>
</li>
</ul>
</li>
</ul>
<p zid="169">With this structure in place, you are ready to build a blank page like this: </p>
<p zid="181">
<table style="WIDTH: 100%" cellspacing="0" cellpadding="7" rules="all" bgcolor="#f5f5f5" border="2" frame="box" unselectable="on" zid="182">
<tbody zid="183">
<tr zid="184">
<td style="WIDTH: 100%" valign="top" zid="185">
<p zid="186">&lt;html&gt; </p>
<p zid="187">&lt;head&gt; </p>
<p zid="188">&lt;title&gt; <strong zid="480"><span  zid="481" style="color:#ff0000;">Your Site Title </span></strong>&lt;/title&gt; </p>
<p zid="189">&lt;script type=&#8221;text/javascript&#8221; src=&#8221;AjaxIncludes.txt&#8221;&gt;&lt;/script&gt; </p>
<p zid="190">&lt;/head&gt; </p>
<p zid="191">&lt;body&gt; </p>
<p zid="192">
<p zid="200">&lt;script&gt; </p>
<p zid="193">ajaxincludes(&#8220;banner.htm&#8221;); </p>
<p zid="194">ajaxincludes(&#8220;navigation.htm&#8221;); </p>
<p zid="195">&lt;/script&gt; </p>
<p zid="196">
<p zid="197">
<p zid="198">
<p zid="199">&lt;script&gt; </p>
<p zid="201">ajaxincludes(&#8220;footer.htm&#8221;); </p>
<p zid="202">&lt;/script&gt; </p>
<p zid="203">
<p zid="204">&lt;/body&gt; </p>
<p zid="205">&lt;/html&gt; </p>
</td>
</tr>
</tbody>
</table>
<p zid="62">
<p zid="206"></p>
<p zid="212">Now, you have created a blank page template for your Web site with all of the background and navigation elements already in place. You are now ready to start building an advanced content management system to deliver the content to this page. This system includes two elements: </p>
<ol zid="213">
<li zid="214">
<div zid="215">Reading the parameters of your URL and matching your JSON feed to decide on the content to include <br zid="218"></div>
<li zid="216">
<div zid="217">Implementing the appropriate Texty script for the content chosen above, and displaying that content on your page </div>
</li>
</ol>
<p zid="219">First, you will need a Zoho Creator application to build your JSON feed, and a Texty account with some content available. Your Zoho Creator application should have at least one field for the value you want to use in the URL, one field for the script code generated by Texty. Optionally, you can include a field for the page title (which will display in your browser window and/or the page tab). Here&#8217;s an example of some values you may want to use: </p>
<p zid="454">
<p zid="274">
<table style="WIDTH: 100%" cellspacing="0" cellpadding="7" rules="all" border="1" frame="box" unselectable="on" zid="275">
<tbody zid="276">
<tr zid="277">
<td style="WIDTH: 25%" valign="top" zid="278"><strong zid="279">Value </strong></td>
<td style="WIDTH: 25%" valign="top" zid="280"><strong zid="281">TextyCode </strong></td>
<td style="WIDTH: 25%" valign="top" zid="282"><strong zid="283">Page title </strong></td>
</tr>
<tr zid="284">
<td style="WIDTH: 25%" valign="top" zid="285">Home </td>
<td style="WIDTH: 25%" valign="top" zid="286">&lt;script type=&#8221;text/javascript&#8221; language=&#8221;javascript&#8221; src=&#8221;http://texty.com/cms/syndicate/ <strong zid="1"><span  zid="2" style="color:#ff0000;">{Your unique URL} </span></strong>.js&#8221; &gt;&lt;/script&gt; </td>
<td style="WIDTH: 25%" valign="top" zid="287"></td>
</tr>
<tr zid="288">
<td style="WIDTH: 25%" valign="top" zid="289">About </td>
<td style="WIDTH: 25%" valign="top" zid="290">&lt;script type=&#8221;text/javascript&#8221; language=&#8221;javascript&#8221; src=&#8221;http://texty.com/cms/syndicate/ <strong zid="3"><span  zid="4" style="color:#ff0000;">{Your unique URL} </span></strong>.js&#8221; &gt;&lt;/script&gt; </td>
<td style="WIDTH: 25%" valign="top" zid="291">About Texty: Simple Content Management and Syndication </td>
</tr>
<tr zid="446">
<td zid="447">Contact </td>
<td zid="448">&lt;script type=&#8221;text/javascript&#8221; language=&#8221;javascript&#8221; src=&#8221;http://texty.com/cms/syndicate/ <strong zid="5"><span  zid="6" style="color:#ff0000;">{Your unique URL} </span></strong>.js&#8221;&gt;&lt;/script&gt; <br zid="450"></td>
<td zid="449">Contact Us to learn more about Texty! </td>
</tr>
</tbody>
</table>
<p zid="292">
<p zid="299"></p>
<p zid="341">The Texty scripts I have included here are for sample purposes only and will not work. Use your own values, which are provided to you whenever you create or edit a Texty, or when you click on the &#8220;Copy Texty&#8221; button next to one of the Texty&#8217;s available in your account. The <strong zid="7">values </strong>field should be either number or a short description (ideally without spaces or special characters, which will be corrupted by the Web browser). Keep your values short, easy to remember, and only one word long. </p>
<p zid="342">
<p zid="302">
<p zid="303">Now that you have your Zoho Creator database built, you can expand on it every time you write a new Texty. Just copy the Texty code generated and drop it into the texty script field. Assign a name or number for the &#8220;value&#8221; field and, optionally, a page title. </p>
<p zid="343">
<p zid="304">
<p zid="305">Next, you want to update your Web page to be able to read the values from your database by using a JSON feed. You will need to add a link to the JSON feed within the &lt;head&gt; section of your page, and a script inside the &lt;body&gt; of the page to process that information. You can find the link to your JSON feed by clicking on the &#8220;Export Data&#8221; link on the view you want to export. If your application is private, you may need to &#8220;Enable Private Hyperlinks&#8221; to give you a publicly-accessible link to your JSON feed. </p>
<p zid="413">
<p zid="414">You are now ready to update your &#8220;blank&#8221; Web page to include the codes necessary to process your JSON feed and deliver the appropriate content to your page (the items in <strong zid="417"><span  zid="418" style="color:#ff0000;">RED </span></strong>will need to be customized to your needs): </p>
<p zid="344">
<p zid="306">
<p zid="307">
<table style="WIDTH: 100%" cellspacing="0" cellpadding="7" bgcolor="#f5f5f5" border="2" frame="box">
<tbody>
<tr>
<td style="WIDTH: 100%" valign="top">
<p>&lt;html&gt; </p>
<p>&lt;head&gt; </p>
<p><span style="color:#006600;">//Optional: Your default page title, which can be changed based on the Texty you include </span></p>
<p>&lt;title&gt; <strong><span style="color:#ff0000;">Your Site Title </span></strong>&lt;/title&gt; </p>
</p>
<p><span style="color:#006600;">//Load your JSON feed from your Zoho Creator application: </span></p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;http://creator.zoho.com/ <strong><span style="color:#ff0000;">{Username} </span></strong>/json/ <strong><span style="color:#ff0000;">{View number} </span></strong>/ <strong><span style="color:#ff0000;">{Private Link &#8211; Optional} </span></strong>/&#8221;&gt;&lt;/script&gt; </p>
</p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;/Documents/AjaxIncludes.txt&#8221;&gt;&lt;/script&gt; </p>
<p>&lt;/head&gt; </p>
<p>&lt;body&gt; </p>
</p>
<p>
<p>&lt;script&gt; </p>
<p>ajaxincludes(&#8220;banner.htm&#8221;); </p>
<p>ajaxincludes(&#8220;navigation.htm&#8221;); </p>
<p>&lt;/script&gt; </p>
<p>
<p><p><span style="color:#006600;">&lt;!&#8211;Identify and Insert the appropriate Texty from your list here&#8211;&gt; </span></p>
<p>&lt;script&gt; </p>
</p>
<p><span style="color:#006600;">//Identify the parameters passed through the URL: </span></p>
<p><span style="color:#006600;">// Example &#8211; <a href="http://lockworldherald.com/Documents/articles.aspx?Home">http://lockworldherald.com/Documents/articles.aspx?Home</a></span></p>
<p><span style="font-size:0;">
<p>var winloc=&#8221;"+top.window.location; </p>
<p>var winsplit=winloc.split(&#8220;?&#8221;); </p>
</p>
<p><span style="color:#006600;">//If a value is found, match it to the appropriate Texty script from your Zoho Creator database </span></p>
<p>if (winsplit.length&gt;1) { </p>
<p>for (var i=0; i&lt;zoho<strong><span style="color:#ff0000;">{Username}</span></strong>view<strong><span style="color:#ff0000;">{View Number}</span></strong>.<strong><span style="color:#ff0000;">{Form Name}</span></strong>.length; i++){ </p>
<p>var NewArray=zoho<strong><span style="color:#ff0000;">{Username}</span></strong>view<strong><span style="color:#ff0000;">{View Number}</span></strong>.<strong><span style="color:#ff0000;">{Form Name}</span></strong>[i]; </p>
<p>var val=NewArray.Value; </p>
<p>var Texty=NewArray.TextyCode; </p>
</p>
<p><span style="color:#006600;">//It is a good idea to convert everything to lowercase, since javascript is case-sensitive. This way, if your page value is &#8220;superman,&#8221; your user could enter &#8220;Superman,&#8221; &#8220;SUPERMAN,&#8221; or &#8220;superman&#8221; and still get the the correct page: </span></p>
<p>val = val.toLowerCase(); </p>
<p>var winval = winsplit[1].toLowerCase(); </p>
</p>
<p>if (val==winval){</p>
<p>document.writeln(Texty); </p>
<p>} </p>
</p>
<p><span style="color:#006600;">//If you choose to change the Page Title for your records, include this code: </span></p>
<p>if (NewArray.Page_title&gt;&#8221;") { </p>
<p>document.title=NewArray.Page_title; </p>
<p>} </p>
</p>
<p>} </p>
<p>} </p>
</p>
<p><span style="color:#006600;">//It is a good idea to add something here in case someone fails to enter a parameter into the page. Either redirect them to a page which will always exist, or else put the script for a fixed Texty here. </span></p>
<p>else { </p>
<p>location.replace(&#8220;http://yoursite.com/Documents/Testy.aspx?<span style="color:#ff0000;"><strong>Value</strong></span>&#8220;);</p>
<p><span style="color:#006600;"></span></p>
<p><span style="color:#006600;">// OR </span></p>
</p>
<p>document.writeln(&#8216;&lt;scr <strong zid="433"><span style="font-size:100%;color:#000099;">&#8216;+&#8217; </span></strong>ipt type=&#8221;text/javascript&#8221; language=&#8221;javascript&#8221; src=&#8221;http://texty.com/cms/syndicate/ <strong>{Your Unique URL} </strong>.js&#8221;&gt;&lt;/scr <strong><span style="font-size:100%;color:#000099;">&#8216;+&#8217; </span></strong>ipt&gt;&#8217;); </p>
<p><span style="color:#006600;">//NOTE: If you want to include the Texty within this code, you have to make sure you split up the &lt;script&gt; and &lt;/script&gt; tags as I have done in the example above. Otherwise, your browser may get confused between a document.writeln(&#8220;&lt;/script&gt;&#8221;); and a regular &lt;/script&gt;, which can cause your javascript code to cease functioning. </span></p>
</p>
<p>} </p>
</p>
<p>&lt;/script&gt; </p>
<p><span style="color:#006600;">&lt;!&#8211;End Texty Script&#8211;&gt; </span></p>
</p>
<p>&lt;script&gt; </p>
<p>ajaxincludes(&#8220;footer.htm&#8221;); </p>
<p>&lt;/script&gt; </p>
<p>
<p>&lt;/body&gt; </p>
<p>&lt;/html&gt; </span></p>
</td>
</tr>
</tbody>
</table>
<p zid="300">
<p zid="301"></p>
<p zid="345">Suppose you saved this page as http://yoursite.com/Documents/texty.htm. Depending on how you&#8217;ve written the code above, your user will either be redirected to a new URL, or will see your &#8220;default&#8221; Texty that you&#8217;ve configured. However, if your user enters an appropriate parameter here (http://yoursite.com/Documents/texty.htm?About), they will see the Texty that corresponds to the parameter they have entered. </p>
<p zid="464">
<p zid="465">You can certainly do something like this without Zoho Creator, but you will have to hard-code all of the variables into your page header. It is much easier to add or change elements from within Zoho Creator, which is why I recommend using this service. </p>
<p zid="419">
<p zid="420">If you will be using more advanced content, you can even use a double-parameter, such as a content type and a parameter value. The content type can be used to determine which Zoho Creator JSON feed should be loaded. This is useful if you have a lot of different pages&#8230;Zoho only includes a maximum of 100 records in a JSON feed (I think). Also, this can help your load time&#8230;instead of loading variables for all of your content types in the header. If your pages are split into categories (for example: pages, products, articles, and resources), you can add a field to your Zoho Creator application to collect this value. Then, you can create separate views for each of the content types (set criteria on your Zoho Creator view to only display a particular content type). You can parse out the window location much the same way as above within the &lt;head&gt; section of your Web site to determine exactly which Zoho Creator JSON feed to load based on that parameter. To your user, the only change is how they get to the page&#8230;instead of http://yoursite.com/Documents/texty.htm?Contact, the URL would look more like this: http://yoursite.com/Documents/Texty.htm?page=Contact. </p>
<p zid="475">
<p zid="482">Don&#8217;t forget to manually type in the appropriate URL in your Texty account to ensure that anyone who comes across your content from a Web search will be redirected to your site. You can configure this &#8220;indexing&#8221; link for each of your Texty elements by clicking in the &#8220;Advanced Secret Options&#8221; section at the bottom of your Texty editor and entering the URL you want this content indexed to in the &#8220;URL to Texty for Search index&#8221; field. You will have to manually ensure that the URL you enter here matches your Zoho Creator database, of course. </p>
<p zid="483">
<p zid="484"><strong zid="485">Applications: </strong></p>
<ul zid="486">
<li zid="487">
<div zid="488">If you write a lot of articles on your Web site, this can be an easy way to add or edit articles without having to mess with the codes on your Web page very often. <br zid="489"></div>
<li zid="490">
<div zid="491">If you don&#8217;t like HTML coding, you can build a single page and serve your entire site without ever editing the HTML again. </div>
<li zid="492">
<div zid="493">You can also use your Zoho Creator application to build a site map or navigation structure for your site, which I&#8217;ll discuss in my next post. </div>
</li>
</ul>
<p zid="476">
<p zid="477">
<p zid="477">
<p zid="477">
<p zid="477">That&#8217;s all for today. I think Texty has a lot of potential, and I look forward to using it on my site to manage my content without sacrificing my Search Engine Optimization! In my next post, I&#8217;ll show you how to use the same Zoho Creator application you created to manage your Texty scripts into an automated sitemap-builder so you can create a navigation menu to allow people to find the content on your site. </p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/51eCNGflFHQrygx3OxIa8yj8oYs/0/da"><img src="http://feedads.g.doubleclick.net/~a/51eCNGflFHQrygx3OxIa8yj8oYs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/51eCNGflFHQrygx3OxIa8yj8oYs/1/da"><img src="http://feedads.g.doubleclick.net/~a/51eCNGflFHQrygx3OxIa8yj8oYs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=2VCXD7_MlZk:R3iAqm2wg0Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=2VCXD7_MlZk:R3iAqm2wg0Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=2VCXD7_MlZk:R3iAqm2wg0Q:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=2VCXD7_MlZk:R3iAqm2wg0Q:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=2VCXD7_MlZk:R3iAqm2wg0Q:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=2VCXD7_MlZk:R3iAqm2wg0Q:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/2VCXD7_MlZk" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/10/21/advanced-content-management-using-ajaxincludes-json-feeds-and-texty-together/"&gt;Advanced Content Management: Using AjaxIncludes, JSON feeds, and Texty together&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Advanced Content Management: Using AjaxIncludes, JSON feeds, and Texty together is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/10/21/advanced-content-management-using-ajaxincludes-json-feeds-and-texty-together/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/10/21/advanced-content-management-using-ajaxincludes-json-feeds-and-texty-together/</feedburner:origLink></item><item><title>Content Management Simplified: Texty</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/trsN97cq9PI/</link><category>Content Management</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 14 Oct 2007 03:49:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=21</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/10/14/content-management-simplified-texty/">Content Management Simplified: Texty</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p><a href="http://www.texty.com/" zid="453"><img style="MARGIN: 0px 0px 7px 10px" alt="Texty: Simple Content Management and Syndication" hspace="5" src="http://www.texty.com/media/images/logo.gif" align="right" vspace="5" border="0" zid="451" shrink="false" /></a>I&#8217;ve recently discovered a new Simple Content Management System (SCMS) from <a href="http://www.texty.com/">Texty</a>. The idea is very simplistic, and very powerful. You can create your content from within your Texty account using a WYSIWYG (&#8220;What You See Is What You Get&#8221;) editor (rich-text editor). If you prefer, you can even edit the raw HTML for your Texty, although any javascript codes you include in the HTML will be stripped out when you save it. When you are finished editing, you will be given a small HTML script code to embed in your Web site where you want the content to appear. That&#8217;s it. Just drop the code on your site and every time that you update the content from your Texty account, the changes will automatically be reflected on your Web page.
<p>This is very much the same idea that I&#8217;ve been using for both the AjaxIncludes and JSON forms of content management. Essentially, the only difference between Texty and these other systems is that texty provides you with a WYSIWYG editor for your content (a benefit), but you can&#8217;t include additional javascript codes directly in your Texty (a drawback).
<p>But there&#8217;s one very important feature of Texty that makes this a far superior model for content management on your site. Texty allows you to specify an &#8220;indexing&#8221; URL so that the Google search robots will index the content of your texty as if it belonged on the page you enter! This solves the primary problems of both of the content management systems I&#8217;ve reviewed before (AjaxIncludes and JSON feeds)! Now, you can include dynamic content on your site without sacrificing your Search Engine Optimization (SEO)!
<p>I did a test-run of this, and it turns out that the text of my page was indexed by Google, but was indexed with the URL of the actual content on the Texty site. However, Texty put a small code into the page on their site that redirected the browser to my own page. This is quite in line with the Texty approach to simplicity, and it does work.
<p>However, Texty&#8217;s approach to making your content indexable has one minor drawback&#8230;if users are searching specifically within your site, they will not be able to find the content.
<p>Here&#8217;s what I did&#8230;first, I created a Texty that contained a made-up word: &#8220;Simplificationactionism.&#8221; I then embedded this simply Texty content into my own Web site (<a href="http://lockworldherald.com/Documents/Texty.aspx?test=simplificationactionism">http://lockworldherald.com/Documents/Texty.aspx?test=simplificationactionism</a>). Then, I waited a few weeks to see if Google would pick up my page.
<p>To be honest, I never did find my secret search term show up in Google on my site or on Texty&#8217;s site, although the term was picked up (temporarily) from my del.icio.us account. However, I did find a term from a different Texty (<a href="http://lockworldherald.com/Documents/Texty.aspx?test=default">http://lockworldherald.com/Documents/Texty.aspx?test=default</a>). When I did a Web search for &#8220;Lockworld Herald,&#8221; this term showed up in the search results within one of my Texty&#8217;s (<a href="http://www.texty.com/texty/8c10f4c2-1dfc-41f7-95ef-41ad4e8afa87.html">http://www.texty.com/texty/8c10f4c2-1dfc-41f7-95ef-41ad4e8afa87.html</a>), so I got an idea of how it would work. I think many of the problems were my fault&#8230;as I was playing around with this Texty functionality, I changed the indexing URL a few times, so I think Google initially was able to index the page, but has since dropped it because the original URL was no longer working. It may take a little time before Google picks it up again.
<p><strong>Texty&#8217;s SEO functionality:</strong><br />
<blockquote>
<p>I was hoping that the search results for &#8220;simplificationactionism&#8221; (or any of my search terms) would show my own page (in my LockworldHerald.com domain). I found out, however, that Google indexed the content under Texty&#8217;s Web site:
<p><a href="http://www.texty.com/texty/89afae0d-e07c-4ccc-b408-1b71e8feb619.html">www.texty.com/texty/89afae0d-e07c-4ccc-b408-1b71e8feb619.html</a>
<p>This is how Google would normally index a page, and at first I thought Texty had lied about being able to index my content. However, I later realized that, since they can&#8217;t control how Google (or other search engines) index pages, they did the next best thing.
<p>Users who click on the link provided by the search engines are redirected to my own Web site (<a href="http://lockworldherald.com/Documents/Texty.aspx?test=simplificationactionism">http://LockworldHerald.com/Documents/Texty.aspx?test=simplificationactionism</a>). Try it yourself&#8230;click on the Texty link above (texty.com/&#8230;) and you will be redirected to my Lockworld Herald Web site.
<p>This is, perhaps, not the ideal solution, but it is certainly better than nothing. The real problem is that if someone is searching my site specifically, they will be unable to find the information they are looking for. However, the good news is that the information is being indexed and made available to search engines, so people can find what you write.</p>
</blockquote>
<p><strong>Summary:</strong>
<p>The amazing benefits of Texty, in my opinion, more than make up for this drawback, especially since Texty brings users right back to your site when they click on a link in the search results. In fact, Texty&#8217;s only drawback is not, in fact, Texty&#8217;s problem or fault. It stems from a fundamental flaw in the way that search engines search and index the Web, which I will be discussing in this blog in a few weeks (at least, that&#8217;s the plan as of right now).
<pre class="csharpcode"> </pre>
<p>
<hr />
<p>That&#8217;s all for today. In my next post, I will discuss ways to take advantage of the three <a href="http://thewebforyou.blogspot.com/search/label/Content%20Management">content management systems</a> I&#8217;ve discussed (<a href="http://thewebforyou.blogspot.com/2007/09/new-project-content-management.html">AjaxIncludes</a>, <a href="http://thewebforyou.blogspot.com/2007/09/content-management-using-json-feeds.html">JSON feeds from Zoho Creator</a>, and Texty) to build a truly dynamic and powerful Web site that is (relatively) simple to create, update, and manage, especially if you don&#8217;t want to spend all of your time writing HTML codes every time you want to add or update a Web page. This is particularly useful if you have a team working on your Web site&#8230;the Web developers on one side, and the content managers on the other. One of the best features of Texty, although I have not heard of anyone using it this way, is the ability to share your content on other Web sites. I will be discussing this idea in more depth shortly (either in the next post, or one after that). I will demonstrate a way to publish articles on your site and provide your visitors with the codes they need to publish the exact same content from your Texty on their own site (basically, you just share the code Texty supplies with your readers). This can be great for press releases, product information, or articles that you want to share with the world.</p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/ksu7zEuzRpDvAygyO6-PodYuvl4/0/da"><img src="http://feedads.g.doubleclick.net/~a/ksu7zEuzRpDvAygyO6-PodYuvl4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ksu7zEuzRpDvAygyO6-PodYuvl4/1/da"><img src="http://feedads.g.doubleclick.net/~a/ksu7zEuzRpDvAygyO6-PodYuvl4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=trsN97cq9PI:i5yc1TiqnLM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=trsN97cq9PI:i5yc1TiqnLM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=trsN97cq9PI:i5yc1TiqnLM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=trsN97cq9PI:i5yc1TiqnLM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=trsN97cq9PI:i5yc1TiqnLM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=trsN97cq9PI:i5yc1TiqnLM:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/trsN97cq9PI" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/10/14/content-management-simplified-texty/"&gt;Content Management Simplified: Texty&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Content Management Simplified: Texty is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } I&amp;#8217;ve recently [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/10/14/content-management-simplified-texty/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/10/14/content-management-simplified-texty/</feedburner:origLink></item><item><title>Content Management using JSON: Pros and Cons</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/AG_FRd9NhEI/</link><category>Content Management</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Mon, 08 Oct 2007 04:58:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=20</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/10/08/content-management-using-json-pros-and-cons/">Content Management using JSON: Pros and Cons</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p>As I explained in my last post, JSON offers almost endless possibilities for dynamically manipulating and displaying content from you Zoho Creator databases into your own Web site. By turning your entire database into a single javascript variable using a series of nested arrays, JSON allows you to select and display records based on date/time values, user credentials, user cookies, URL parameters, form controls, and your custom CSS styles to match the data precisely to your Web&#8217;s format and style.
<p>However, there are a few drawbacks to using JSON feeds to provide your site content, so I wanted to use this post to weight some of the pros and cons of using JSON feeds to deliver custom content to your site.<br />
<h3>Pros:</h3>
<p>I outlined many of the benefits of using JSON feeds to deliver dynamic content to your site in my last post on <a href="http://thewebforyou.blogspot.com/2007/09/content-management-using-ajaxinclude.html">The Web for You</a> as well as my September 10 post on <a href="http://landofzc.wordpress.com/2007/09/10/use-json-to-deliver-zoho-creator-content-to-your-web-site/">Land of ZC</a>. Let me summarize the benefits of JSON below:
<ul>
<li>
<p><strong>Match the style of your content to your site:</strong><br />Using JSON feeds along with document.write commands, you can make use of your customized Web site styles to display the information from each record in your database. For example, you can make use of simple &lt;h1&gt; &lt;p&gt; &lt;div&gt; &lt;span&gt; and other common tags to specify how the data should be displayed. Furthermore, you can programmatically change the display depending on the content. For example, you might want to display specific values (such as &#8220;free&#8221; in a catalog) in bold or using a specific color.</p>
<li>
<p><strong>Select which records or fields within a record to display based on content:</strong><br />Since you can analyze the data before choosing whether or not to display it, you can choose to display or hide certain information based on certain parameters (such as date/time fields, visitor information, or parameters within the URL).</p>
<li>
<p><strong>Perform operations on data:</strong><br />Because JSON is a javascript function, you can manipulate data before displaying it. For example, you can perform mathematical operations on numerical fields, split or combine text-based fields, or compare or manipulate date/time fields.</p>
<li>
<p><strong>Display variable data using the same page template:</strong><br />One of the most powerful uses of JSON feeds to display data is the ability to build a single Web page that can display variable content based on parameters passed to it (most likely through the URL). An example of how this works can be found on my <a href="http://lockworldherald.com/Documents/ResourceList.aspx">Recommended Resource</a> list. In this sample application, I am loading data from a Zoho Creator database containing information about a variety of resources on the Web. The main page displays a list of all of the resources in the database using the custom styles of my Web site. When you click on the link for a specific resource, you are taken to a new page which displays the complete details for that resource from the same Zoho Creator database. However, rather than creating a new Web page on my site for every resource, I simply pass the specific resource ID (from the database) to a single page via the URL (<a href="http://lockworldherald.com/documents/ResourceDetails.aspx?resource=1">http://lockworldherald.com/documents/ResourceDetails.aspx?resource=1</a> and <a href="http://lockworldherald.com/documents/ResourceDetails.aspx?resource=15">http://lockworldherald.com/documents/ResourceDetails.aspx?resource=15</a> both use the same Web page, but display different information).</p>
</li>
</ul>
<h3>Cons:</h3>
<ul>
<li>
<p><strong>Search Engine Optimization (SEO) problems with your content:</strong><br />The biggest drawback to using JSON feeds to dynamically display the data on your page is that the information displayed is completely invisible to most search engine indexing. The robots and spiders which scan your site automatically for the search engines can not see the data because it is written to your page after the page has loaded.<br />This applies specifically to Web pages using Microsoft Office Live Basics, or other HTML-only Web hosting solutions. If your server allows you to write your pages using codes which can be run on the server before the page loads, the search engines will be able to &#8220;see&#8221; and process the information on your page.</p>
<li>
<p><strong>Zoho Creator record limits:</strong><br />For most of the data views you create using Zoho Creator, the maximum number of records you can display is 100. I assume this holds true for JSON feeds as well, although I have not had the chance to test it yet. If your database has more than 100 records, you may not have access to all of the information in your database.</p>
<li>
<p><strong>Javascript run times:</strong><br />If you have a lot of records or a very complicated script for displaying those records, you might significantly increase the load-time for your page. Likewise, the more text contained within each record, the longer it will take to load the page. For relatively small databases (small fields with a limited number of records), JSON will work quite well. But for every record you add, or more complicated fields, your page may start to load slowly, making it less desirable to your viewers.</p>
<li>
<p><strong>Incompatible with pages designed with Microsoft Office Live Basics page-design tools:</strong><br />As with the AjaxIncludes content management solution I <a href="http://thewebforyou.blogspot.com/2007/09/new-project-content-management.html">discussed previously</a>, the javascript required to use this feature will not work on a page designed with the Microsoft Office Live Basics (MOLB) page designer. This has to do with the design of MOLB, which loads any HTML you add to your page <em>after</em> the page has loaded. What happens is that your call for the javascript variable (http://creator.zoho.com/{Username}/json/{view number}/) is not completed by the time your javascript is trying to process the variable. (I&#8217;ve been trying to figure this out for a long time, but I finally discovered why MOLB can&#8217;t handle calls for scripts on a thread in the <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1945645&amp;SiteID=1">MSDN Office Live Developer Forum</a> &#8211; look way down the page for a post from Chris Beiter on August 24).</p>
</li>
</ul>
<h3>Summary:</h3>
<blockquote><p>While JSON can be used to give your site a high-tech look and feel with limited programming knowledge, it has one major drawback in that the content you display is essentially invisible to search engines (the primary source of traffic for most sites) &#8211; unless you are using JSON with server-side scripting. I would not recommend using JSON to deliver the primary content to your site for this reason. However, if your site&#8217;s functionality is more important than Search Engine Optimization (SEO) (like my site, <a href="http://lockworldherald.com/">LockworldHerald.com</a>) or if the application you are working on is only a small portion of your site, JSON is a powerful tool for delivering dynamic, customizable data to your visitors. </p>
</blockquote>
<p>That&#8217;s all for today. In my next post, I&#8217;ll introduce a third type of content-management for your site that utilizes both the AjaxIncludes scripts, the JSON feeds, and a new system that promises to provide an easy-to-use content delivery mechanism without damaging your SEO. That&#8217;s a pretty significant promise, and we&#8217;ll see how well it works next week.</p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/eR9GSWXKM3jgCiuGbcND_pd94U8/0/da"><img src="http://feedads.g.doubleclick.net/~a/eR9GSWXKM3jgCiuGbcND_pd94U8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/eR9GSWXKM3jgCiuGbcND_pd94U8/1/da"><img src="http://feedads.g.doubleclick.net/~a/eR9GSWXKM3jgCiuGbcND_pd94U8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=AG_FRd9NhEI:u-9i1Gfx7oQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=AG_FRd9NhEI:u-9i1Gfx7oQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=AG_FRd9NhEI:u-9i1Gfx7oQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=AG_FRd9NhEI:u-9i1Gfx7oQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=AG_FRd9NhEI:u-9i1Gfx7oQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=AG_FRd9NhEI:u-9i1Gfx7oQ:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/AG_FRd9NhEI" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/10/08/content-management-using-json-pros-and-cons/"&gt;Content Management using JSON: Pros and Cons&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Content Management using JSON: Pros and Cons is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/10/08/content-management-using-json-pros-and-cons/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/10/08/content-management-using-json-pros-and-cons/</feedburner:origLink></item><item><title>Content Management using JSON feeds: dynamically add and manipulate content on your site</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/S1KfRmcOWr4/</link><category>Content Management</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sat, 29 Sep 2007 23:34:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=19</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/09/29/content-management-using-json-feeds-dynamically-add-and-manipulate-content-on-your-site/">Content Management using JSON feeds: dynamically add and manipulate content on your site</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p><img style="margin: 0px 0px 10px 10px" src="http://media.twango.com/m1/original/0088/da159a0a41474c3fb2661a3ec6ff2fbc.gif" align="right">
<p zid="13">When I first discovered <a href="http://creator.zoho.com/" zid="14">Zoho Creator</a>, the idea of building a Web database that could be included in my own Web site sounded too good to be true. After a while, however, I found that I simply couldn&#8217;t get the content from my applications to display correctly for my site. I wanted more power to match the format of the content being displayed to my own site&#8217;s style. Using the standard iframe or javascript codes provided by Zoho Creator, the imported information simply wasn&#8217;t in the format I particularly wanted. Furthermore, I was disappointed that I couldn&#8217;t programmatically display certain information and hide other information.</p>
<p zid="15">
<p zid="16">Then, I discovered the power of JSON. According to Wikipedia, &#8220;<strong zid="17">JSON</strong> <b zid="18">(JavaScript Object Notation)</b> (Pronounced like Jason, <a title="International Phonetic Alphabet" href="http://en.wikipedia.org/wiki/International_Phonetic_Alphabet" zid="19">IPA</a> <span class="IPA" title="Pronunciation in IPA" zid="20">/dʒeɪsən/</span>) is a lightweight <a title="Computer" href="http://en.wikipedia.org/wiki/Computer" zid="21">computer</a> data interchange format. It is a text-based, human-readable format for representing simple <a title="Data structure" href="http://en.wikipedia.org/wiki/Data_structure" zid="22">data structures</a> and <a title="Associative array" href="http://en.wikipedia.org/wiki/Associative_array" zid="23">associative arrays</a> (called objects).&#8221; In simpler terms, the JSON feed from your Zoho Creator application is packaged into a single javascript variable. You can decipher the data from your application by parsing out the nested arrays. For a sample of the codes for parsing this information, please see below:</p>
<p zid="24">
<blockquote dir="ltr" style="margin-right: 0px" zid="32">
<p zid="3">
<p zid="25">
<table cellspacing="0" cellpadding="7" rules="all" bgcolor="#f5f5f5" border="2" frame="box" zid="33" unselectable="on">
<tbody zid="34">
<tr zid="35">
<td style="width: 100%" valign="top" zid="36">
<blockquote dir="ltr" style="margin-right: 0px" zid="59">
<p zid="57"><font color="#006600" zid="501">&lt;!&#8211;</font></p>
<p zid="60"><font color="#006600" zid="502">Load the data from Zoho Creator using the following format:</font></p>
<p zid="61"><font color="#006600" zid="503">http://creator.zoho.com/{Username}/json/{ViewNumber}/</font></p>
<p zid="63"><font color="#006600" zid="504">This will load a single javascript variable containing all of the data from your view</font></p>
<p zid="65"><font color="#006600" zid="505">&#8211;&gt;</font></p>
</blockquote>
<p zid="58">&lt;script src=”http://creator.zoho.com/lockworld/json/6/”&gt;&lt;/script&gt; </p>
<blockquote dir="ltr" style="margin-right: 0px" zid="69"><p dir="ltr" style="margin-right: 0px" zid="68"><font color="#006600" zid="506">&lt;!&#8211;</font></p>
<p dir="ltr" style="margin-right: 0px" zid="70"><font color="#006600" zid="507">Parse out the individual fields in each array for each record from the main variable, which will be named using the following convention: </font></p>
<p dir="ltr" style="margin-right: 0px" zid="72"><font color="#006600" zid="508">zoho{username}view{view number}.{form name}</font></p>
<p dir="ltr" style="margin-right: 0px" zid="73"><font color="#006600" zid="509">&#8211;&gt;</font></p>
</blockquote>
<p dir="ltr" style="margin-right: 0px" zid="71">&lt;script&gt;<br zid="38">for (var j=0; j&lt;zoholockworldview6.catalog_example.length; j++){<br zid="39">var NewArray=zoholockworldview6.catalog_example[j];<br zid="40">var ItemName = NewArray.Item_name;<br zid="41">var ItemPrice = NewArray.Item_price;<br zid="42">var PayPal = NewArray.PayPal;<br zid="43">var Description = NewArray.Description;<br zid="44">var DetailLink = NewArray.DetailLink;<br zid="45">document.writeln(”&lt;p&gt;&lt;b&gt;&lt;i&gt;” + ItemName + “&lt;/i&gt;&lt;/b&gt;”);<br zid="46">document.writeln(” $” + ItemPrice);<br zid="47">document.writeln(”&lt;br&gt;”);<br zid="48">document.writeln(PayPal);<br zid="49">document.writeln(”&lt;br&gt;”);<br zid="50">document.writeln(Description);<br zid="51">document.writeln(”&lt;br&gt;”);<br zid="52">document.writeln(DetailLink);<br zid="53">document.writeln(”&lt;/p&gt;&lt;hr&gt;”);<br zid="54">}<br zid="55">&lt;/script&gt;</p>
</td>
</tr>
</tbody>
</table>
<p zid="56">
<p zid="510">This is a simplified script, of course, which will simply write out each record in your database. You can easily see, however, how you can do more with the data. For example, you can create filters that will only display a specific record if the appropriate criteria are met. Furthermore, you can specifically customize the way the text is displayed using your own style sheet. You might also consider creating &#8220;alternate&#8221; fields in your database which will replace the default fields. Since the example above displays my sample product catalog I created <a title="E-commerce step 2 of 4: Create an easy-to-use catalog of products/services for your Web site" href="http://thewebforyou.blogspot.com/2007/08/e-commerce-step-2-of-4-create-easy-to.html" zid="74">a few weeks ago</a>, you can use this structure to create time-sensitive discounts&#8230;simply add&nbsp;fields to your database with the reduced price and a date range to apply the price. Compare the current date/time with your date range and display the discount price if it falls within the range. You can also display the &#8220;original&#8221; price <em>crossed out</em>&nbsp;to your viewers using this method, so they will know how much of a discount they are getting. </p>
<p zid="77">
<p zid="78">Another possibility is to compare the data in your JSON feed with specific credentials supplied by your user. Let&#8217;s say, for example, that you&#8217;ve used Zoho Creator to collect information from your visitors, including their e-mail addresses. You can easily create a form on your site where the visitor can enter his/her e-mail address, and you can set your page to only display the records from your database with a matching e-mail address.</p>
<p zid="75">
<p zid="76">In reality, the possibilities are endless for how you can manipulate and display the information from your Zoho Creator applications on your site. Programmatically select and display certain records based on date/time values, user credentials, user cookies, URL parameters, form controls, and any other javascript functions you want.</p>
<p zid="79">
<p zid="80">I&#8217;ve said it <a href="http://landofzc.wordpress.com/2007/09/10/use-json-to-deliver-zoho-creator-content-to-your-web-site/" zid="81">before</a>, and I&#8217;ll say it again: &#8220;Now that’s powerful stuff, especially from a free Web tool!&#8221;</p>
<p zid="158">
<p zid="160">
<p zid="159">That&#8217;s all for today. In my next post, I&#8217;ll weigh the pros and cons of using JSON in your Web site.</p>
<p zid="161">
<p zid="82"></p>
<p zid="83"></blockquote>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/6NoXKiBpGC2QKRbeLMEnBopkWfQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/6NoXKiBpGC2QKRbeLMEnBopkWfQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6NoXKiBpGC2QKRbeLMEnBopkWfQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/6NoXKiBpGC2QKRbeLMEnBopkWfQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=S1KfRmcOWr4:ndQFvBSXFIA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=S1KfRmcOWr4:ndQFvBSXFIA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=S1KfRmcOWr4:ndQFvBSXFIA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=S1KfRmcOWr4:ndQFvBSXFIA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=S1KfRmcOWr4:ndQFvBSXFIA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=S1KfRmcOWr4:ndQFvBSXFIA:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/S1KfRmcOWr4" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/09/29/content-management-using-json-feeds-dynamically-add-and-manipulate-content-on-your-site/"&gt;Content Management using JSON feeds: dynamically add and manipulate content on your site&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Content Management using JSON feeds: dynamically add and manipulate content on your site is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/09/29/content-management-using-json-feeds-dynamically-add-and-manipulate-content-on-your-site/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">5</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/09/29/content-management-using-json-feeds-dynamically-add-and-manipulate-content-on-your-site/</feedburner:origLink></item><item><title>Content Management using AjaxInclude: Pros and Cons</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/Li2SeIi49u4/</link><category>Content Management</category><category>Microsoft Office Live Basics</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 23 Sep 2007 01:22:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=18</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/09/23/content-management-using-ajaxinclude-pros-and-cons/">Content Management using AjaxInclude: Pros and Cons</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p><img style="MARGIN: 0px 0px 5px 10px" alt="Custom-assemble your Web page from multiple files" src="http://media.twango.com/m1/medium/0088/3369a7541e184f2796956f9d9f45dcf5.jpg" align="right" /></p>
<p>In my <a title="New Project: Content Management" href="http://thewebforyou.blogspot.com/2007/09/new-project-content-management.html" target="_blank">last post</a>, I introduced the idea of assembling your Web site from multiple files using a JavaScript version of AjaxInclude. Please note that this idea is primarily intended for people using Microsoft Office Live Basics, or some other Web-hosting service that does not allow them to use true server-side includes on their Web sites. AjaxInclude scripts (available from <a title="Dynamic Drive: Free JavaScript for your Web site" href="http://www.dynamicdrive.com/dynamicindex17/ajaxincludes.htm" target="_blank">Dynamic Drive</a>) are intended to provide the minimal functionality (from a user&#8217;s perspective) to mimic a true server-side include script. The techniques discussed in this post, however, can be applied to any Web page. If you aren&#8217;t familiar with ASP, PHP, or PERL programming, you can use AjaxInclude to build similar functionality into any Web site.</p>
<p><strong>Pros:</strong></p>
<ul>
<li>
<p>AjaxIncludes allows you to dynamically build your site using simple JavaScript codes. By adding a simple script to your page in a particular location (see example below), you can include the contents of another page within your site. This allows you to ensure that elements (such as navigation menus, images, and basic site structure) can be included on many pages within your site. Yet, if you want to update your site&#8217;s look, feel, or content, you only have to edit the included files, and the changes will be reflected on every page within your site.</p>
<blockquote><p>Sample AjaxInclude action (You must include the full AjaxInclude script {or a link to it} in the &lt;HEAD&gt; section of your site before calling this function):<br />
<table style="BACKGROUND-COLOR: lightgrey" cellspacing="0" cellpadding="5" align="center" bgcolor="lightgrey" border="2" unselectable="on">
<tbody>
<tr>
<td>&lt;script&gt;<br />  ajaxinclude(&#8220;yourfile.htm&#8221;);<br />&lt;/script&gt;</td>
</tr>
</tbody>
</table>
</p>
</blockquote>
<li>
<p>AjaxIncludes can also be configured to dynamically display content. Suppose you had several different files that could be displayed on a specific page, depending on a specific parameter (perhaps, the day of the week). You could use JavaScript to determine the day of the week, and choose the appropriate content to display within your site based on that parameter. Alternatively, you could pass specific information through the URL of your site (yoursite.com/documents/pagename.htm?ShowContent=true). Again, you can use JavaScript to parse out the parameter(s) and determine the appropriate content to display on your site.</p>
</p>
<li>
<p>You can even use AjaxInclude to pass along information in the &lt;HEAD&gt; section of your document. In the &lt;HEAD&gt; section of your Web site, you can include a meta tag to point to your available RSS feeds:</p>
<blockquote><p>&lt;link rel=&#8221;alternate&#8221; type=&#8221;application/rss+xml&#8221; title=&#8221;The Web for You (Blog)&#8221; href=&#8221;http://feeds.feedburner.com/TheWebForYou&#8221;&gt;</p></blockquote>
<p>This tag helps Web browsers to auto-discover the RSS feeds for a site, especially since many of the feed sources are not located in the same domain (either the feed is produced and stored externally in a blog or using a service like <a title="FeedCraft - Create your own RSS feed(s)" href="http://lockworldherald.com/Documents/ResourceDetails.aspx?resource=5" target="_blank">FeedCraft</a>, or the feed is re-directed through a service like <a title="FeedBurner: Put your content in front of more eyeballs" href="http://lockworldherald.com/Documents/ResourceDetails.aspx?resource=12" target="_blank">FeedBurner</a>).</p>
<p>My own Web site, <a title="View a working example at LockworldHerald.com" href="http://lockworldherald.com/documents/catalog.aspx" target="_blank">LockworldHerald.com</a> (which is a testing-ground for building a better-than-average Web site using the free Microsoft Office Live Basics Web hosting service), currently has five RSS feeds available for subscription. Although this is far more than I actually need, or anyone would want to subscribe to, I have included the feeds to show off both how you can use Zoho Creator to easily provide subscriptions to your site content and how you can use AjaxIncludes to quickly and easily update your RSS list for every page on your site. As I add new feeds or change my list of feeds, I can update one file and ensure that every page in my site will start showing the updated information immediately. Even if you do not add or change your feeds frequently, it is probably a good idea to have these links passed on through an included file, rather than having to hard-code this information into every Web page on your site.</p>
</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li>
<p>The principal problem with using AjaxIncludes is that the included content is invisible to robots and spiders, such as those used by search engines to index the Web. This means that the included content of your page will not be indexed along with the other page contents. If you are using too many included files to actually deliver the content to your page, your site will not be properly indexed, and your Search Engine Optimization (SEO) will be ruined. To further complicate things, the included pages will be indexed separately by the search engines, and linked to in search results. This means that, rather than Web search results being directed to the page you want to display, visitors will be directed to incomplete portions of a page (the fragmentary included files) containing the search terms they specified.</p>
<li>
<p> AjaxIncludes can only include content from within your domain, which is a major drawback. Although there are many services which will allow you to store content on their sites, you can only dynamically include content from the same domain (yoursite.com, for example) in your page.</p>
</li>
</ul>
<blockquote></blockquote>
<p><strong>Summary:</strong></p>
<p>Although AjaxIncludes can be used to build a very dynamic site, if they are overused, they will make your site invisible or worse to search engines. This is not a problem, however, if you are using AjaxIncludes the way they are best suited: For building page structure <strong><em>around</em></strong> your primary content.</p>
</p>
<p>That&#8217;s all for today. In my next post, I will be talking about using JSON feeds to add even more dynamic features to your Web site. If you want to get an idea of how this all works, you might want to read my September 10 post on <em>Land of ZC</em>, <a href="http://landofzc.wordpress.com/2007/09/10/use-json-to-deliver-zoho-creator-content-to-your-web-site/">Use JSON to deliver Zoho Creator content to your Web site</a>, to learn more about JSON and how to process the JSON feed for your site. You can also preview a sample application of what is possible using JSON feeds by viewing the new <a title="Suggested resources for building, maintaining, or enhancing your online presence" href="http://lockworldherald.com/Documents/ResourceList.aspx" target="_blank">Recommended Resources</a> section of my Web site. I use JSON feeds to dynamically display specific content from a single Web page. This is something I tried unsuccessfully to accomplish <a title="'E-commerce" href="http://thewebforyou.blogspot.com/2007/08/e-commerce-step-3-of-4-enhancing-your.html" target="_blank">earlier in my e-commerce series</a>. Thanks to JSON feeds, I have now significantly improved the technique.</p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/8WjjixHc9XPoE9idGge34IVv_fc/0/da"><img src="http://feedads.g.doubleclick.net/~a/8WjjixHc9XPoE9idGge34IVv_fc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8WjjixHc9XPoE9idGge34IVv_fc/1/da"><img src="http://feedads.g.doubleclick.net/~a/8WjjixHc9XPoE9idGge34IVv_fc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=Li2SeIi49u4:3YoMQtDw7Xg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=Li2SeIi49u4:3YoMQtDw7Xg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=Li2SeIi49u4:3YoMQtDw7Xg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=Li2SeIi49u4:3YoMQtDw7Xg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=Li2SeIi49u4:3YoMQtDw7Xg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=Li2SeIi49u4:3YoMQtDw7Xg:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/Li2SeIi49u4" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/09/23/content-management-using-ajaxinclude-pros-and-cons/"&gt;Content Management using AjaxInclude: Pros and Cons&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
Content Management using AjaxInclude: Pros and Cons is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/09/23/content-management-using-ajaxinclude-pros-and-cons/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/09/23/content-management-using-ajaxinclude-pros-and-cons/</feedburner:origLink></item><item><title>New project: Content Management</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/B77uHXzVAtE/</link><category>Content Management</category><category>Microsoft Office Live Basics</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sat, 15 Sep 2007 03:42:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=17</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/09/15/new-project-content-management/">New project: Content Management</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<blockquote></blockquote>
<p>I am currently working on a new content management system for <a class="" title="Lockworld Herald (Home)" href="http://lockworldherald.com/" mce_href="http://lockworldherald.com">Lockworld Herald</a>. Although I am very pleased with Microsoft&#8217;s new &#8220;Office Live Basics&#8221; service, there is no doubt that the standard Web-building service is simply inadequate. There are far too many problems with the way the site is designed to build a professional-looking site using this service.</p>
<p>
<p><strong>Scripting problems:</strong><br />
<blockquote>
<p>One of the biggest problems with Microsoft Office Live Basics (MOLB) is the inability to use &#8220;external&#8221; JavaScripts on your site. For my purposes, I am using the term &#8220;external JavaScript&#8221; to refer to any JavaScript codes that reside outside of the page being viewed&#8230;whether on your MOLB site or elsewhere on the Web. In my experience, almost all external JavaScript codes completely disable not only my MOLB site, but crash the entire browser. Since JavaScript is such a standard feature for Web sites, this is simply unacceptable.</p>
<p>
<p>In order to be useful at all, a Web site should be capable of handling the most basic of Web site design standards. I have no idea whether the scripting problems are due to some sort of conflict with the way MOLB is designed, interference with the built-in JavaScript codes already on the site, or a deliberate attempt by Microsoft to make the &#8220;free&#8221; version of their service as useless as possible so people will pay a monthly fee for an &#8220;upgraded&#8221; site.</p>
</blockquote>
<p>
</p>
<p>
<p><strong>Design problems:</strong><br />
<blockquote>
<p>Even without the scripting problems, trying to design your site using the built-in site-designer tool is frustrating at best. Although the tool is pretty straightforward, there are bugs in it. If you frequently edit the text on your page, for example, you will often find &#8220;junk&#8221; tags left on the page that alter the way your text looks. Text may suddenly appear bold, or in color, or the wrong size, etc. This is unacceptable. If JavaScript is a Web-standard feature, how much more is simple text editing an absolute requirement for any Web site?</p>
<p>
<p>Furthermore, MOLB has only a limited number of color palettes and design templates available for use. None of them are very attractive, and there is no way to modify the template or color scheme you work with. If you are interested in truly customizing your site, you can not do so with the standard MOLB tools.</p>
</blockquote>
<p>
</p>
<p>
<p><strong>Feature problems:</strong></p>
<p>
<blockquote>MOLB does not allow you to include other basic features of today&#8217;s Web sites using their service. It is not possible to host or link to an RSS feed for your site, link to customized style sheets, change the default style sheets, or customize the design of your site (outside of the few templates available).</p></blockquote>
<p>
<p>With all of these problems, you might wonder why I bother with MOLB. The fact of the matter is, despite all of the flaws with the service, no one else offers the ability to register a domain name, host a site, and provide e-mail addresses all free of charge. These features make MOLB an unmatched service, and almost indispensable for small business owners or others who need a Web site, but can&#8217;t afford to pay for one.</p>
<p>
<p>So, if MOLB is indispensable to small business owners, but so poorly designed that it is not useful, what are we to do? There are only two choices&#8230;either suck it up and pay for your Web site from a different service provider, or find some way to bypass all of the restrictions of your MOLB site.</p>
<p>
<p>Since I, for one, don&#8217;t believe in paying for anything if there&#8217;s any possible way to get it for free, I have opted to go with the second option.</p>
<p>
<p>Rather than use the so-called &#8220;site-designer&#8221; offered by Microsoft Office Live Basics, I have set up my home page (<a href="http://lockworldherald.com/">http://lockworldherald.com/</a>) to skip directly into my &#8220;Documents&#8221; folder on the site. I can upload my own Web pages to this folder, which allows me to design my site any way that I want to. Not surprisingly, there are still limitations to what you can upload to this folder. For one, it appears that documents in your MOLB folder can not contain ASP or ASP.NET codes (at least I haven&#8217;t been able to get any of them to work). Furthermore, any files with a &#8220;.js&#8221; extension (JavaScript files) work erratically. MOLB uses some sort of &#8220;JavaScript Caching&#8221; for all &#8220;.js&#8221; files, so it takes a few days before any &#8220;.js&#8221; files you&#8217;ve uploaded will actually function.</p>
<p>
<p>For these and other reasons, I have decided that it would be better just to design my own site. I have focused on using two different types of content-management for my site. The first is a &#8220;local&#8221; content management system &#8211; I simply break my Web page into various pieces (all located on my Web site) and assemble them via JavaScript when the page loads. This system makes use of AjaxInclude scripts to assemble multiple pieces of a Web page into a single, complete page. The second system, which I will discuss in future posts, makes use of <a href="http://creator.zoho.com/">Zoho Creator&#8217;s</a> JSON feeds. For a more detailed look at how to use JSON in your Web site, read my September 10 guest-post on the <a href="http://landofzc.wordpress.com/">Land of Zoho Creator</a> blog: <a title="Permanent Link to Use JSON to deliver Zoho Creator content to your Web site" href="http://landofzc.wordpress.com/2007/09/10/use-json-to-deliver-zoho-creator-content-to-your-web-site/" rel="bookmark">Use JSON to deliver Zoho Creator content to your Web site</a>.</p>
<p>
</p>
<p>
<p><strong>Local Content Management Using AjaxInclude:</strong></p>
<p>
<p>There are a few features of MOLB that are useful, and that I wouldn&#8217;t want to loose. For example, I would not want to re-write all of the HTML codes for my basic site design every time I create a new page. In particular, I don&#8217;t want to have to re-build the page banner and navigation structure from scratch every time I add a page.</p>
<p>
<p>I&#8217;ve tried to use ASP and ASP.NET programming to use server-side includes on my page&#8230;these are code snippets that can be added easily to any page you might want. Unfortunately, MOLB does not allow you to do any ASP or ASP.NET programming on your site (at least, I haven&#8217;t been able to make it work yet).</p>
<p>
<p>I then realized that there is a very simple form of JavaScript-based server-side includes available&#8230;called AjaxIncludes. By embedding a simple <a class="" title="Dynamic Drive - Free JavaScript for your Web site" href="http://www.dynamicdrive.com/dynamicindex17/ajaxincludes.htm" target="_blank" mce_href="http://www.dynamicdrive.com/dynamicindex17/ajaxincludes.htm">script</a> (available from <a href="http://www.dynamicdrive.com/dynamicindex17/ajaxincludes.htm">Dynamic Drive</a>) into your page, you can mimic using server-side includes. The only change that you need to make is to save the AjaxInclude function itself as a separate JavaScript file (you&#8217;ll need to save it as a &#8220;.txt&#8221; file rather than a &#8220;.js&#8221; file to avoid MOLBs JavaScript caching problems). Upload this .txt file to your site, and include a script that calls this function in the head section of every page you create:<br />
<table cellspacing="0" cellpadding="10" align="center" bgcolor="whitesmoke" border="2">
<tbody>
<tr>
<td align="left">&lt;script src=&#8221;{URL of TXT file}&#8221;&gt;&lt;/script&gt;</td>
</tr>
</tbody>
</table>
<p>
<p>If you take a look at the new page I&#8217;ve created at <a href="http://lockworldherald.com/documents">lockworldherald.com/documents</a>, you will see an example of how AjaxIncludes can be used. If you look at the source code for that page, you&#8217;ll notice that I&#8217;ve used AjaxInclude to pull the following shared elements into my home page:</p>
<p>
<ul>
<li>Meta tags (including links to my style sheet and RSS feeds)<br /><em>(ajaxinclude(&#8220;/documents/inc-meta.inc&#8221;))</em></li>
<p>
<li>Page banner structure<br /><em>(ajaxinclude(&#8220;/documents/inc-header.inc&#8221;))</em></li>
<p>
<li>Home navigation menu (and a &#8220;close navigation&#8221; piece, which is required for the design I&#8217;m using)<br /><em>(ajaxinclude(&#8220;/documents/inc-navhome.inc&#8221;))<br />(ajaxinclude(&#8220;/documents/inc-navclose.inc&#8221;))</em></li>
<p>
<li>Footer navigation structure<br /><em>(ajaxinclude(&#8216;/documents/inc-footer.inc&#8221;))</em></li>
</ul>
<p>
<p>I am using the &#8220;.inc&#8221; extension purely for appearances&#8230;ASP programming uses &#8220;.inc&#8221; files for server-side includes, which the AjaxInclude function is trying to mimic. The actual files you include can have a .txt, .htm, .html, .asp, .aspx, or other extension and still work on your site. </p>
<p>
<p>I have some other JavaScript codes on my page that apply the second type of content management, but we&#8217;ll ignore those for now.</p>
<p>
<p>In addition to making it easier to access and edit the &#8220;important&#8221; HTML for my page, the included sections also allow me to make a change to a any of the included elements one time and ensure that the changes are accurately reflected in every page that shares that particular element. This makes it very easy for me to create new pages. I can upload a new, complete Web page within a matter of minutes because I don&#8217;t need to re-create all of the basic page codes for every page.</p>
<p>
<p>Below are some screen shots of the difference between my old site (using the MOLB design templates and doing everything I could to make it look acceptable), and my new site (using my own current design, which is still very much in draft format):</p>
<p>
<p align="center"><img src="http://media.twango.com/m1/original/0086/c40bb98ef97d454aa7dfb3c69036ba7a.gif" /></p>
<p>
</p>
<p>That&#8217;s all for today. I&#8217;ll talk a little bit more about using this method of content management in my next post, and will go into details about using JSON feeds to create even more dynamic content in future posts.</p>
</p>
<p>P.S. If you haven&#8217;t been by <a href="http://lockworldherald.com/">LockworldHerald.com</a> or <a href="http://thewebforyou.blogspot.com/">TheWebForYou.blogspot.com</a> lately, you might want to check them out. I&#8217;ve completed a major site re-design (see images above), and have updated my Blogger template to mimic my own Web site. For all intents and purposes, it now looks like my blog is &#8220;just another page&#8221; in my Web site. I will talk about this and other options for including an RSS feed or blog on your Web site in future posts (after we finish the content management series, which will cover some of the basics you need to know to make this work).</p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/qOhh0wfyjHegd5DlRQsjwVwbolY/0/da"><img src="http://feedads.g.doubleclick.net/~a/qOhh0wfyjHegd5DlRQsjwVwbolY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qOhh0wfyjHegd5DlRQsjwVwbolY/1/da"><img src="http://feedads.g.doubleclick.net/~a/qOhh0wfyjHegd5DlRQsjwVwbolY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=B77uHXzVAtE:7EuTwkE-CyA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=B77uHXzVAtE:7EuTwkE-CyA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=B77uHXzVAtE:7EuTwkE-CyA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=B77uHXzVAtE:7EuTwkE-CyA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=B77uHXzVAtE:7EuTwkE-CyA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=B77uHXzVAtE:7EuTwkE-CyA:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/B77uHXzVAtE" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/09/15/new-project-content-management/"&gt;New project: Content Management&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
New project: Content Management is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } I am [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/09/15/new-project-content-management/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/09/15/new-project-content-management/</feedburner:origLink></item><item><title>I’m off to see the wizard!</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/ypzHMB1G5vk/</link><category>Uncategorized</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sat, 08 Sep 2007 02:41:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=16</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/09/08/im-off-to-see-the-wizard/">I&#8217;m off to see the wizard!</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p><a title="Land of ZC: Exploring the world of Zoho Creator" href="http://landofzc.wordpress.com/" target="_blank" atomicselection="true"><img style="MARGIN: 0px 0px 10px 5px" height="70" src="http://landofzc.files.wordpress.com/2007/07/lozc_banner1.png" width="240" align="right" /></a> </p>
<p>I have <a href="http://landofzc.wordpress.com/2007/08/26/new-contributor-lockworld/" target="_blank">been invited</a> to write for the <a title="Land of ZC: Exploring the world of Zoho Creator" href="http://landofzc.wordpress.com/" target="_blank">Land of ZC</a> blog (LoZC) by <a href="http://sharetactics.wordpress.com/about/" target="_blank">Pete Thomas</a>, author of LoZC and <a title="Share Tactics: Free &#038; SaaSy" href="http://sharetactics.wordpress.com/" target="_blank">ShareTactics</a>, along with <a href="http://biguglycouch.wordpress.com/about/" target="_blank">Alan Bradford</a>, author of <a title="Keep on rockin' in the free world!" href="http://biguglycouch.wordpress.com/" target="_blank">BigUglyCouch</a>. As I mentioned in my <a title="E-commerce step 2 of 4: Create an easy-to-use catalog of products/services for your Web site" href="http://thewebforyou.blogspot.com/2007/08/e-commerce-wrap-up-what-ride.html" target="_blank">last post</a>, LoZC offers tips and tricks on everything Zoho Creatorish, and goes behind the scenes to interview Zoho Creator staffers.</p>
<p>I&#8217;m excited about this opportunity, and look forward to sharing my ideas with all of you Zoho fans on this blog.</p>
<p>That does not mean that I will abandon The Web for You, naturally. Although I will write for LoZC when I discover new features/capabilities of Zoho Creator, I will continue to write about Zoho Creator along with other free resources to help you build your Web presence free right here on The Web for You.</p>
<p>I look forward to working with Pete and Alan, and I hope you get the chance to check out their blogs &#8211; you&#8217;ll definitely find a wealth of knowledge about a wide variety of topics.</p>
<p>Thanks for the opportunity, Pete!</p>
<p><a title="Subscribe to LoZC today!" href="http://landofzc.wordpress.com/feed/" target="_blank" atomicselection="true"><img style="MARGIN: 0px 5px 0px 0px" src="http://media.twango.com/m1/original/0069/a2d13d3f59484239b80cb2ede223b6f0.gif" /></a> <a title="Land of ZC: Exploring the world of Zoho Creator" href="http://landofzc.wordpress.com/feed/" target="_blank">Subscribe to LoZC today!</a></p>
<p><a title="Subscribe to ShareTactics today!" href="http://sharetactics.wordpress.com/feed/" target="_blank" atomicselection="true"><img style="MARGIN: 0px 5px 0px 0px" src="http://media.twango.com/m1/original/0069/a2d13d3f59484239b80cb2ede223b6f0.gif" /></a> <a title="ShareTactics: free &amp; SaaSy." href="http://sharetactics.wordpress.com/feed/" target="_blank">Subscribe to ShareTactics today!</a></p>
<p><a title="Subscribe to the BigUglyCouch today!" href="http://feeds.feedburner.com/bUc" target="_blank" atomicselection="true"><img style="MARGIN: 0px 5px 0px 0px" src="http://media.twango.com/m1/original/0069/a2d13d3f59484239b80cb2ede223b6f0.gif" /></a> <a title="Big Ugly Couch: Keep on rockin' in the free world!" href="http://feeds.feedburner.com/bUc" target="_blank">Subscribe to the BigUglyCouch today!</a></p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/MjCp5D152dEz2L4Qa8Jr3N17hdI/0/da"><img src="http://feedads.g.doubleclick.net/~a/MjCp5D152dEz2L4Qa8Jr3N17hdI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MjCp5D152dEz2L4Qa8Jr3N17hdI/1/da"><img src="http://feedads.g.doubleclick.net/~a/MjCp5D152dEz2L4Qa8Jr3N17hdI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=ypzHMB1G5vk:bsaAqbtHh38:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=ypzHMB1G5vk:bsaAqbtHh38:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=ypzHMB1G5vk:bsaAqbtHh38:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=ypzHMB1G5vk:bsaAqbtHh38:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=ypzHMB1G5vk:bsaAqbtHh38:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=ypzHMB1G5vk:bsaAqbtHh38:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/ypzHMB1G5vk" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/09/08/im-off-to-see-the-wizard/"&gt;I&amp;#8217;m off to see the wizard!&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
I&amp;#8217;m off to see the wizard! is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/09/08/im-off-to-see-the-wizard/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/09/08/im-off-to-see-the-wizard/</feedburner:origLink></item><item><title>E-commerce wrap-up: What a ride!</title><link>http://feedproxy.google.com/~r/TheWebForYou/~3/5gdrKKV_xtw/</link><category>e-commerce</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lockworld Herald</dc:creator><pubDate>Sun, 26 Aug 2007 02:43:00 PDT</pubDate><guid isPermaLink="false">http://www.lockworldherald.com/thewebforyou/?p=15</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><div align="center"><a href="http://www.lockworldherald.com/thewebforyou/2007/08/26/e-commerce-wrap-up-what-a-ride/">E-commerce wrap-up: What a ride!</a> is a post from: <a href="http://www.lockworldherald.com/thewebforyou">The Web for You</a></div>
<hr />
<div>&nbsp;</div>
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print">
<link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css">
<style>
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
</style>


</p>
<p><img style="MARGIN: 0px 0px 10px 10px" height="189" alt="Sit back and watch the money roll in!" src="http://media.twango.com/m1/medium/0080/d2dd1a2651b7457fa28551d125e40dc3.jpg" width="250" align="right" /> I started this <a title="View all posts in this series" href="http://thewebforyou.blogspot.com/search/label/e-commerce">e-commerce</a> series on my blog with only a vague idea of how it would all come together. Needless to say, I&#8217;ve learned a lot along the way. I had this crazy idea that Zoho Creator could be used to create an online catalog of products or services to embed in your Web site, which led me to try experimenting with using this same idea to automatically create the appropriate PayPal codes for every product entered into the catalog. The idea sounded great, but I had to delve deep into the Zoho Creator and PayPal codes to try to make it all work.</p>
<p>Although it took me a long time to get everything working the way I wanted it to, I think it was worth the effort. I&#8217;ve had some great feedback from my readers about this series, even from the Zoho Creator team! I appreciate all of the support you&#8217;ve shown me.</p>
<p>One of the comments I received was from Pete Thomas, author of the <a title="Share Tactics: Free &#038; SaaSy" href="http://sharetactics.wordpress.com/" target="_blank">ShareTactics</a> and <a href="http://landofzc.wordpress.com/" target="_blank">Land of ZC</a> blogs. Share Tactics explores how technology and the Web are changing the way we live and work. Pete has dedicated his Land of ZC blog to &#8220;all things Zoho Creatorish,&#8221; and he has an amazing collection of ideas for what people can do with Zoho Creator. His work goes into far greater depth than anything I&#8217;ve been able to do. His blog really pushes the limits of Zoho Creator, covering topics such as:</p>
<ul>
<li>Creating a <a title="Link to Edit an Individual Record, Land of ZC, August 23, 2007" href="http://landofzc.wordpress.com/2007/08/23/link-to-edit-an-individual-record/" target="_blank">hyperlink directly to an editable version</a> of a single record within your application. This can be very useful if you are using Zoho Creator to generate registrations for individual users, or need the ability to allow users without Zoho accounts to edit records in a private application.</li>
<li><a title="Encrypting Zoho Creator Data, Land of ZC, August 18, 2007" href="http://landofzc.wordpress.com/2007/08/18/encrypting-zoho-creator-data/" target="_blank">Encrypting Zoho Creator Data</a>. This is a nice way to ensure that a publicly-available application can only be viewed by authorized users, or on a Web site that you control. Because public applications are indexed by search engines, this is a nice way to protect the private information people may submit in your forms.</li>
<li><a href="http://landofzc.wordpress.com/2007/08/06/backup-your-zoho-creator-data-to-dabble-db/">Backup your Zoho Creator data to Dabble DB</a>. Sad to say, this is something I never even considered when I started building my online catalog. While it&#8217;s not a problem for me (since I currently only sell one item), this is very useful information for anyone who plans on creating a large catalog (or any other application) with Zoho Creator.</li>
</ul>
<p>In addition to these and many other useful posts, Pete has also taken it upon himself to interview the Zoho Creator team to find out what makes them (and Zoho) tick. I will be using the <a title="Land of ZC: Exploring the world of Zoho Creator" href="http://landofzc.wordpress.com/" target="_blank">Land of ZC</a> and <a title="Share Tactics: Free &amp; SaaSy" href="http://sharetactics.wordpress.com/" target="_blank">ShareTactics</a> blogs a great deal as I explore new ideas for building a dynamic Web presence on a &#8220;limited&#8221; (read, nonexistent) budget.</p>
<p>So, while you sit back and watch the money roll in from your online store (hopefully), you might be wondering where we go from here? To be honest, I haven&#8217;t made a final decision, but I have several ideas in the hopper. I&#8217;ll be taking next week off for Labor Day, so that will buy me a little time. I think, however, that I&#8217;ll probably start a new series on creating enhancements for your Web site. I&#8217;ll use Zoho Creator for many of these enhancements, so it might not be a bad idea to go over them now, while we&#8217;re all in the Zoho Creator mood.</p>
<p>Most of the enhancements I&#8217;m working on are built to provide workarounds for the deficiencies with Microsoft Office Live Basics (MOLB). If you were with me earlier this summer, I mentioned that anyone could register a domain name and start their own <a title="Register your domain name for free, The Web for You, June 30, 2007" href="http://thewebforyou.blogspot.com/2007/06/register-your-domain-name-for-free.html" target="_blank">personal or business Web site absolutely free</a>, thanks to this new service from Microsoft. Unfortunately, however, there&#8217;s not much you can do with the site using the tools available, aside from just creating a Web site with a variety of different pages. However, the free domain name registration, free Web hosting, and free slew of e-mail addresses offered definitely make the service worthwhile. But I wanted to build more interactivity into the site, as well as to create more dynamic content. I have several ideas in mind, which I&#8217;ll explain in detail in the next few posts. One of my ideas is to create your own Content Management system. For example, you could have one page (details.aspx for example) that would display any details you specify, depending on the attributes you provide. While the structure of the page would remain unchanged, the information displayed would be different for details.apsx?page=27 than for details.aspx?page=4. Another (very similar) idea is to create shortcut URLs for your site. Rather than point someone to <a href="http://lockworldherald.com/documents/catalog.aspx">http://lockworldherald.com/documents/catalog.aspx</a>, I can point them to <a href="http://lockworldherald.com/?page=catalog">http://lockworldherald.com/?page=catalog</a>. There are two primary benefits to this. One is, obviously, to shorten the URL (especially if you are linking to pages outside your site with longer URLs). The other benefit is the ability to create multiple shortcuts pointing to the same destination. For example, I could also point people to <a href="http://lockworldherald.com/?page=products">http://lockworldherald.com/?page=products</a>, which would take them to the same destination as page=catalog. Also, rather than editing the information on a static Web page, you could create one (or many) Zoho Creator applications to hold the specific content for you. Instead of editing the whole page, you could edit portions of the content individually. This series will make use of another great Zoho Creator feature—JSON scripts, which allow you to access the data in your applications via JavaScript. Ultimately, I&#8217;d like to find ways to practically build your site as a single page that could serve up different content based on these attributes. Although I&#8217;m not quite there yet, I am very close.</p>
</p>
<p>That&#8217;s all for today. Thanks again to everyone for showing such interest in and support for this blog! I look forward to starting the next series after Labor Day.</p>
<div class="blogger-post-footer">
<hr/>Brought to you by <a href="http://lockworldherald.com/">Lockworld Herald</a>.<br />
<br/><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" /></p>
<hr/></div>

<p><a href="http://feedads.g.doubleclick.net/~a/K4_Zr-hJI_4X9bV17DBzdwKuHHY/0/da"><img src="http://feedads.g.doubleclick.net/~a/K4_Zr-hJI_4X9bV17DBzdwKuHHY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/K4_Zr-hJI_4X9bV17DBzdwKuHHY/1/da"><img src="http://feedads.g.doubleclick.net/~a/K4_Zr-hJI_4X9bV17DBzdwKuHHY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=5gdrKKV_xtw:oR0Fzu2EiyQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=5gdrKKV_xtw:oR0Fzu2EiyQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=5gdrKKV_xtw:oR0Fzu2EiyQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=5gdrKKV_xtw:oR0Fzu2EiyQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?i=5gdrKKV_xtw:oR0Fzu2EiyQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWebForYou?a=5gdrKKV_xtw:oR0Fzu2EiyQ:bcOpcFrp8Mo"><img src="http://feeds.feedburner.com/~ff/TheWebForYou?d=bcOpcFrp8Mo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheWebForYou/~4/5gdrKKV_xtw" height="1" width="1"/>]]></content:encoded><description>&lt;p&gt;&lt;div align="center"&gt;&lt;a href="http://www.lockworldherald.com/thewebforyou/2007/08/26/e-commerce-wrap-up-what-a-ride/"&gt;E-commerce wrap-up: What a ride!&lt;/a&gt; is a post from: &lt;a href="http://www.lockworldherald.com/thewebforyou"&gt;The Web for You&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/default.css"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/print.css" media="print"&gt;
&lt;link type="text/css" rel="stylesheet" href="http://www.lockworldherald.com/css/rss.css"&gt;
&lt;style&gt;
.black {
  color:#000000;
}
.codecomment, .green {
  color:#008000;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codecommand, .blue {
  color:#3737E4;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codestring, .red {
  color:#C41616;
  font-family: arial, sans-serif;
  font-size:1em;
}
.codesyntax, .aqua {
  color:#5B91AF;
  font-family: arial, sans-serif;
  font-size:1em;
}
&lt;/style&gt;


&lt;/p&gt;
E-commerce wrap-up: What a ride! is a post from: The Web for You &amp;#160; .black { color:#000000; } .codecomment, .green { color:#008000; font-family: arial, sans-serif; font-size:1em; } .codecommand, .blue { color:#3737E4; font-family: arial, sans-serif; font-size:1em; } .codestring, .red { color:#C41616; font-family: arial, sans-serif; font-size:1em; } .codesyntax, .aqua { color:#5B91AF; font-family: arial, sans-serif; font-size:1em; } I [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.lockworldherald.com/thewebforyou/2007/08/26/e-commerce-wrap-up-what-a-ride/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.lockworldherald.com/thewebforyou/2007/08/26/e-commerce-wrap-up-what-a-ride/</feedburner:origLink></item></channel></rss>

