GENERAL OVERVIEW
This
It is important that one read it in its entirety from top to bottom. Though it need not be memorized, each individual component must be understood, otherwise chaos will most certainly insue as each individual web page must be properly integrated into the
Fortunately, the actual implementation process itself is not difficult as there are only about one half dozen steps required per page and
On the other hand, this document itself is quite long since it is a single source document not broken into separate pages for the sections, and we desire to expound upon all the nuances, since at this point you know nothing of them.
If you read this document as though it were a letter written by a friend explaining something very exciting to him, this experience may be exciting to you too.
Though such a technique is certainly contrary to standard professional methods, with your help, we are creating a powerful educational tool, the
But of course, it is hoped that the implementation steps to be presented later should be sufficiently precise and concise as to allow one to implement his website without actually understanding the nuances of all the steps as partially revealed through the definitions and sometimes tedious discussions which are next. However, if and when something goes wrong, nothing takes the place of understanding.
As always, don't memorize, simply try to understand each individual step, each paragraph, each sentence. What ever one forgets is unimportant, because the comprehension he attains will later assist him in filling in the blanks.
Though the order of presentation presented here may not be the order inwhich you proceed in the implementation steps to be given later, this order is a there may be others logical order for a comprehension of the component parts and their interrelationships.
Introduction
As Steven Hawkings said, "Understanding is easy explaining is the hard part." Although we think we have done a thorough job of explaining, upon review, in part because we have been so thorough in our explanations even tedious, it is sometimes difficult to see the proverbial forest for the trees.
But since there are truly only half a dozen concepts around which everything else revolves, we will briefly explain some of them here and then you can see that all the detail simply discusses the connections, the mechanics, and the glue, and thereby hopefully be able to read it and digest it more thoroughly.
Your Home Directory
A Frameset
A Frame
A Page
Your home directory is specified by what we call initTopSub.
A frameset is a specific kind of page that helps to break up the general overall viewing area into blocks which can be independently manipulated. There can be numerous framesets which can be located in your home directory, our directories, or another member's home directory. Of course they can be located in other directories but that gets us into the tedious details, and to make them easier to find we prefer to place them in home directories.
In the
A frame is one of those display blocks mentioned in frameset and it's only home is a specific frameset.
Finally, a page is always displayed in some frame of a frameset in some directory, but has its own address which could be anywhere, and which might be specified as being relative to either the current page that is referencing it, or relative to the frameset in which it is to be displayed.
Just about everything else is, as stated above, the connections, the mechanics, and the glue.
Display Techniques
Overview
Color coding the importance of a specification is an interesting concept. As we shall often point out, there are entire dimensions of communication not just "levels" that need to be explored and expressed. generally we attempt to be compliant with the Western conventions of green yellow red, put broadly as a range from safe threw caution to danger (and then any number of variations thereupon), but it is difficult, yea impossible, to map the universe into the rainbow.
So the following techniques though somewhat "flat" in their ability to express the true depth of the interactions of the components, will hopefully suffice to get us off-the-ground.
In this particular context of parameters of scripts,there are two(2) concepts, towit: Whether a parameter, because it is a place holder, must be specified even if zero or null, and whether a parameter, once specified, needs to have a non-zero or non-null value as the situation requires. We shall attempt to integrate this complicated form of optional into our color coding.
Something required is indicated thus.
In the general context, it could be anything. Specifically, in the case of scripts, it could be the entire script, or for just a parimeter.
Something optional is indicated thus.
In the general context, these two(2) concepts (required and optional) stand alone. Specifically, in the case of scripts, there can not be a required parameter after an optional parameter. And anything that is not indicated as an optional parameter is a required parameter regardless of other coding indications or values it may have, even if it is only required as a place holder.
Something required (as a place holder) but has some aspect of optional is indicated thus.
In the general context, an example might be a requirement of an acknowledgement without a requirement of a specific commitment. Specifically, in the case of scripts, a required parameter may still have an optional value. That is to say, a value of zero or null would be as though the parameter were an optional parameter were it not required as a place holder. But note that there are some parameters that have zero as a distinct meaning. It is not an optional value simply because it may have a zero or null value as one of it's meanings and specifications.
However, there is yet another wrinkle. An optional value, once it has been specified, may itself place requirements upon other parameters which in these specifications might then be inappropriately marked. So in other words, one must be keenly aware of the functionality of the parameter and not rely exclusively upon our indications.
Something required (as a place holder) but otherwise is unnecessary or ignored thus.
In the general context, an example might be "this page intentionally left blank". Specifically, in the case of scripts, an unnecessary parameter would be one that is ignored by the script, except that it is required as a place holder.
Something important is indicated thus. or thus.
In the general context, it could be anything. Specifically, in the case of scripts, a parameter who's values have important implications and ramifications. The results will not simply be cosmetic.
Something critical is indicated thus.
In the general context, it could be anything. Specifically, in the case of scripts, a parameter who's value just has to be right or things just won't work. That is to say, even though it is a variable in the script and may have countless otherwise valid values, in your situation and context, there is really only one right value.
Something cautionary or illusive is indicated thus.
In the general context, it could be anything. Specifically, in the case of scripts, a parameter who's value may range all the way from optional value to critical. This is because in some circumstances they are not needed, but in other circumstances they may be needed and even be critical.
Something we forgot to do is indicated thus.
This text, though correct, has some aspect associated with it, possibly a hyperlink, that we forgot to or have not gotten around to doing. Writing at AEDOK is a very dynamic situation. Things reference other things more than at a standard website as a primitive attempt to add more dimenions to the content. We say primitive because it is using current techniques which themselves are not part of a truely organized larger context. Only fragments,... ideas. Our mission is to rectify this 19th Century perspective. Until then, we shall utilize them to the best of our ability.
Summary
Even though something required (which is supposed to be orange) might seem more important than something important or
Color coding is once again presented, here without narration.
Something required is indicated thus.
Something optional is indicated thus.
Something required but has some aspect of optional is indicated thus.
Something important is indicated thus. or thus.
Something critical is indicated thus.
Something cautionary or illusive is indicated thus.
Something we forgot to do is indicated thus. Please contct us if you see anything marke in this fashon.
Definitions
This is not a complete list of
The representaions to be presented here are no better, but they suit the purposes. In particular, the definitions presented here of commonly accepted terms are often incomplete though hopefully correct as far as they go as we are not giving a lesson on the terms themselves, but rather, intend to clearly elucidate the distinction between certain commonly accepted terms and
Nomenclature
All terms are case-insensitive. In usage here, a term may have upper case letters to separate words without spaces or underlines. There is no hidden meaning in the capitalization. Two(2) terms one with a capitalization and the other without but otherwise identical would have the same meaning. Thus:
commonPractice
commonpractice
Later in the discussion and usage of the scripts,
aSneakyScript();
aSneakyscript();
the above two references being to two(2) different scripts.
All examples assume, and it is a technique to which we adhere rigorously, that for any given subdomain there is a directory of the same name as the subdomain, under the domain in a mirrored structure, thus:
subDomain | directory |
edu.aedok.org | aedok.org/edu/ |
yourSubdomain.edu.aedok.org | aedok.org/edu/yourSubdomain/ |
fullDomain, aka the complete domain
Definition
As universally accepted. The entire domain specification (in a given context).
Discussion
Notice we say, "in a given context". That is because the fullDomain is not actually a thing unto itself. The word "full" is an a contextual adjective, as apposed to top which as also an ive, but not contextual.
Consider the example below. You have pages under yourSubSubDomain.edu.aedok.org. But we have pages under edu.aedok.org. In your context and our context, the topDomain is the same, ie., org. But the fullDomains are not the same. In your context, the fullDomain is yourSubSubDomain.edu.aedok.org, whereas in our context, the fullDomain is edu.aedok.org.
Example(s)
edu.aedok.org
yourSubSubDomain.edu.aedok.org
top, aka topDomain
Definition
As universally accepted. The first level of a domain specification.
Discussion
Example(s)
com
net
org
dom, aka domain
Definition
As universally accepted. The second level of a domain specification.
Discussion
Example(s)
aedok
Note:
The term dom has other meanings not discussed here.
sub, aka subDomain
Definition
As universally accepted. The third level of a domain specification.
Discussion
In normal usage, sub might also include fourth and fifth levels etc. In these discussions, we restrict sub to mean third level, and introduce additional terms below for subsequent levels.
Example(s)
edu as in edu.aedok.org
ent as in ent.aedok.net
subSub, aka suSubDomain
Definition
The fourth level of a domain specification. And the second level of a subDomain specification.
Discussion
See subDomainDepth below.
Example(s)
yourSubDomain.edu.aedok.org
yourSubDomain.ent.aedok.net
subSubSub, aka subSubSubDomain
Definition
The fifth level of a domain specification. And the third level of a subDomain specification.
Discussion
See subDomainDepth below.
Example(s)
yourSubDomain.qqq.edu.aedok.org
yourSubDomain.qqq.ent.aedok.net
subDomainLevel aka level
Definition
The subDomainLevel is the same as the concept of level used in the above definitions, towit: top, dom, sub, et al. Of course, the level varies accordingly.
Discussion
subDomainLevel is based on a 1 origin, positive only, system, with respect to top. Ie., the first level is level 1, there is no level 0, nor negative levels.
We distinguish between subDomainLevel and subDomainDepth defined next.
Example(s)
level | domain spec |
1 | com |
2 | aedok.net |
3 | edu.aedok.org |
4 | yourSubDomain.edu.aedok.org |
4 | yourSubDomain.ent.aedok.net |
4 | qqq.edu.aedok.org |
4 | qqq.ent.aedok.net |
5 | yourSubDomain.qqq.edu.aedok.org |
5 | yourSubDomain.qqq.ent.aedok.net |
subDomainDepth, aka depth
Definition
The subDomainDepth is the subDomainLevel minus two(2).
Discussion
subDomainDepth is based on a 1 origin, positive only, system with respect to sub. Ie., the first depth is depth 1, there is no depth 0, (except on an instantaneous basis to loop around the highest boundaries), nor negative depths.
Another way of looking at it, is that the depth is the level of a sub domain, but we use two different words to emphasize the distinction between these two types of levels, subDomainLevel and subDomainDepth.
This is a critical, but not necessarily difficult, concept.
Example(s)
depth | level | domain spec |
~ | 1 | com |
~ | 2 | aedok.net |
1 | 3 | edu.aedok.org |
2 | 4 | yourSubDomain.edu.aedok.org |
2 | 4 | yourSubDomain.ent.aedok.net |
2 | 4 | qqq.edu.aedok.org |
2 | 4 | qqq.ent.aedok.net |
3 | 5 | yourSubDomain.qqq.edu.aedok.org |
3 | 5 | yourSubDomain.qqq.ent.aedok.net |
Summary:
These two(2) critical terms, level subDomainLevel and depth subDomainDepth, are easy to ascertain. To determine the Level simply count the number of pieces of the fullDomain. To determine the depth, subtract two(2), or count from the subDomain.
absolute address, aka absolute url
Definition
As universally accepted.
Discussion
An absolute address by it's nature, unambiguously specifies the location of a page. Compare to relative address below next.
Syntax incomplete
http://
Example(s)
http://aedok.org
http://edu.aedok.org
http://yourDomain.edu.aedok.org
http://yourDomain.edu.aedok.org/yourPage1_of_theSubDomainRootDirectory.html
http://yourDomain.edu.aedok.org/yourDirectory1/yourPage1_of_yourDirectory1.html
relative address aka relative url
Definition
As universally accepted.
Discussion
A relative address is a means (sometimes convenient sometimes essential) for specifying a page relative to the page containing the specification.
It is convenient, in that given a directory structure, one may specify a page by moving up and down that structure without having to specify the full absolute address path.
It is essential, in that an absolute address for the host system the Internet, wouldn't exist on a local system. Eg., your developmental copy of your website. Further, given two(2) arbitrary local systems ie not the host (
Example(s)
aedok
http://yourSubDomain.edu.aedok.org/yourDirectory1/yourPage1_of_yourDirectory1.html
http://yourSubDomain.edu.aedok.org/yourDirectory1/yourPage2_of_yourDirectory1.html
http://yourSubDomain.edu.aedok.org/yourDirectory2/yourPage1_of_yourDirectory2.html
office
(c):/companyName/aDivision/web/public_html/yourSubDomain/yourDirectory1/yourPage1_of_yourDirectory1.html
(c):/companyName/aDivision/web/public_html/yourSubDomain/yourDirectory1/yourPage2_of_yourDirectory1.html
(c):/companyName/aDivision/web/public_html/yourSubDomain/yourDirectory2/yourPage1_of_yourDirectory2.html
home
(c):/myfiles/projects/experimental/aedok/yourSubDomain/yourDirectory1/yourPage1_of_yourDirectory1.html
(c):/myfiles/projects/experimental/aedok/yourSubDomain/yourDirectory1/yourPage2_of_yourDirectory1.html
(c):/myfiles/projects/experimental/aedok/yourSubDomain/yourDirectory2/yourPage1_of_yourDirectory2.html
Analysis
Given the above example, on each computer system, from the first page (yourPage1_of_yourDirectory1.html) you could reference the second and third pages all the same way, thus:
FROM | TO | SPEC |
yourPage1_of_yourDirectory1.html | yourPage2_of_yourDirectory1.html | yourPage2_of_yourDirectory1.html |
yourPage1_of_yourDirectory1.html | yourPage1_of_yourDirectory2.html | ../yourDirectory2/yourPage1_of_yourDirectory2.html |
Whereas, with absolute addressing you would have to write some extremely complex and tedious scripts to convert the addresses.
backaround relative address, aka
Definition
The backaround relative address is a specific variation on the common relative address. It is the address required to to back up the directory structure, and then go forward down the directory structure to the destination desired page. It is composed of three(3) parts, towit:
backup relative address component
forward directory specification component
desired page.
Discussion
We've given the backaround relative address a separate name because not all relative addresses back up, and some only back up and we need to be able to isolate that group that do both in our discussions simply for a clearer understanding of where everything is located, and how the various pieces interact.
The backaround relative address can't take you anywhere that therelative address can't, because it is a relative address. Our point is, that a standard relative address that goes only forward, could backup and thus be a backaround relative address, it just wouldn't be the shortest path. By studying the backaround relative address, one may gain a better perspective that the domain in which he is operating is part of a larger picture.
Example(s)
relative address | IS IT A backaround relative address? | Why? |
dir1/aPage.html | No | It goes only forward |
../anotherPage.html | No | It goes only backward |
../dir2/aThirdPage.html | Yes | It goes back and then forward |
backup relative address component, aka
Definition
The backup relative address component is the first of three(3) parts of the backaround relative address defined above. It is the number of dotDotSlash(../) sequences required to back up before one can then proceed forward again, (using the forward directory specification component defined next) to get from where you are one pageto where you're going another page.
Syntax
../
1 | ../ |
2 | ../../ |
3 | ../../../ |
etc |
Discussion
If the destination page, is in a different directory not contained deeper within the current directory, or indeed if the destination page is in a different subdomain, one cannot simply specify that directory or subdomain followed by the page name. If he did, said directory and or subdomain would be interpreted as subdirectories of the current directory. One must therefore back up to the directory which contains the different directory or subdomain, so that they are correctly interpreted as subdirectories of that directory (in which they are actually found), after which the page is then located.
Each sequence of dotDotSlash(../) backs up one directory. We call that entire backup sequence the backup relative address component.
One then specifies the complete and necessary sequence of directories to get to the destination page. We call that complete forward sequence the forward directory specification component. Followed by the destination page which doesn't need a special name.
Example(s)
../all/all_all__js.js
In the above example, we back up one directory and then go forward one directory, all, and then specify the destination page, all_all__js.js.
forward directory component, aka
Definition
The forward directory component is the second of three(3) parts of the backaround relative address defined above. It is the directories required to go forward down after one has backed up (using the backup relative address component defined above) to get from where you are one pageto where you're going another page.
Syntax
directory slash(/) directory slash(/) ..
Discussion
See discussion for backup relative address component defined above.
Example(s)
See Example(s) for backup relative address component defined above.
cross subdomain relative addressing, aka
Definition
Crossing from one subdomain to another using relative addresses rather than absolute addresses.
Syntax
Discussion
See discussion for backaround relative addressdefined above.
Example(s)
See Example(s) for backup relative address component defined above.
page-relative address, aka
Definition
A page-relative address is a relative address defined above with respect to the page in which the relative address is specified.
Discussion
When one references a page from a hyperlink with the intent to load that page, he must not only know where the referenced page is located, but he must also know where the referencing page is located. Once one knows both, then and only then can he figure out what it takes to get from where he is to where he is going. That is the page-relative address.
Common usage is to use the term relative address followed by the phrase with respect to this-or-that. Or to use the term relative address and assume the phrase with respect to this-or-that is understood.
In these discussions and documentation,
with respect to the page containing the hyperlink,
with respect to the frameset into which the page is to be loaded displayed,
with respect to a single specific fixed location within the
with respect to a specific subdomain within the
But there is a tendency to overlook such phrases as, with respect to, or at least a possibility of overlooking them, or even if they are not overlooked, not remember them at a later time, or not remember clearly with respect to what. So we simply put this important information in the term itself, thus: page-relative address, frameset-relative address, domain-relative address, and subdomain-relative address.
So, page-relative address is the usual reference used in a standard hyperlink reference, the relative address.
But continuing now with this discussion, in the
Example(s)
frameset-relative address, aka
Definition
A frameset-relative address is a relative address defined above with respect to the frameset into which the page it is to be loaded displayed.
Discussion
Read page-relative address above discussion first.
The usual usage of this term is in the case of a single page request defined below, such as from a search engine or a bookmark. In such cases, the author must decide ahead of time in which frame of which frameset said page should be presented along with any other supporting pages, thereby pulling the surfer into its context.
It is the frameset that needs to know where the page is located, not the other way around. So in the init() define later spec the frameset-relative address is used showing the relationship of the page being established to the frameset in which it is to be loaded.
Consider: To the author said page might itself be a lesser supporting page to another page or pages. But at this particular instance, to the surfer it is the center of attention. Very often, the documents it was supporting now support it. So it's current location is the center of attention, in usually a larger frame than the author would normally present it, and the documents it was supporting are now off to the side available for the surfer to become involved.
Example(s)
var iam="../all/all_all__K(tm)_anecdote_snail-mail_clutter.html"; var iamCaller="";
var spr=iam;
initLoad150801(
"org_AEDOK",
"f_single-page-request_main-clf_ala_com.html",
"f_SE_content",
iam,
iam,
0,
"about",
"Snail Mail Clutter and the
In the above example, Snail Mail Clutter and the
So with absolutely no clicking or searching on the surface part, he has immediately before him our mission, and all he needs to know about becoming a member.
One of the beauties of this is, among other things, that any number of arbitrary pages can reference this pre-established frameset. The author decides where in this frameset the individual page should appear. And the frameset, being pre-established, fills in the blanks.
That, if we do say so ourselves, is powerful.
You, the
Further, you may also use not only any
The complete details are presented in the instructions later.
domain-relative address, aka
Definition
A domain-relative address is a relative address with respect to a single specific fixed location within the
Discussion
Read page-relative address above discussion first.
That single specific fixed location is, level 2 which is depth 0 . But that is the reference point, so the highest domain-relative address is actualy at level 3 which is depth 1
This terminology allows one to see exactly where within the
Example(s)
The following domain-relative addresses are all at level 3 which is depth 1
all/all_all__js.js
all/all_all__about_mission__intro.html
all/all_all__K(tm)_anecdote_snail-mail_clutter.html
all/all_all__member_levels__intro.html
com/pf/com_pf__prod_recipe_persimmon_syrup_oatmeal_1_cereal.html
org/edu/yourSubSubDomain/mainPage.html
More Discussion
The domain-relative address always gets one to the same location as the relative address, and vice versa. But the domain-relative address shows a more complete path.
Whereas the relative address shows the path from the current location to the destination, the domain-relative address also shows the path from level 3 which is depth 1. When dealing with multiple subdomains, from a developmental perspective, it is often useful to see not only how to get from where you are to where you are going, but also, where "where you are going" really is.
In dealing with a single subdomain, an
However, in any reference to any of the
subdomain-relative address, aka
Definition
A subdomain-relative address is a relative address with respect to a specific subdomain within the
Discussion
That specific specific subdomain is usually the
Example(s)
knowItAll.edu.aedok.org IS LOCATED IN org/edu/knowItAll/ | ||
sub-domain-relative address | domain-relative address | |
index.html | org/edu/knowItAll/index.html | |
books/great_thougts.html | org/edu/knowItAll/books/great_thougts.html |
frame, aka window
Definition
As universally accepted. A fixed supposedly rectangular area of the browser window into which a page may be loaded from a hyperlink reference without disturbing the content or appearance of the remainder of the browser window which contains other frames.
Syntax
Discussion
See discussion of frameset defined below after target.
Example
Analysis
Caveat
Notice we say, "A fixed
Summary
The aka window terminology is only used in casual reference such as "Go to the window to the left and tell me what you see." In all descriptive, instructional, educational, or technical references one generally uses the proper term frame, though we sometimes use both terms to give a larger context to the narration.
target, aka
Definition
As universally accepted. The frame defined above into which a page is to be loaded and displayed.
Syntax
Discussion
See discussion of frame defined above.
Example
Analysis
Caveat
Summary
frameset, aka
Definition
As universally accepted. A page which specifies a group of frames.
Framesets can be nested. So a frame can contain a page which is itself a frameset.
Syntax
Discussion
Most websites attempt to use them innocuously, with no or as little indication of their presence as possible. This can produce a very smooth and appealing experience. Of course, they also use tables (again, often hidden with no apparent borders) to partition and cordon off areas.
These techniques of concealment of the skeleton so to speak allow one to structure and utilize the available display space efficiently according to a design and plan. However at
Example
Analysis
See single page request defined next
Caveat
Summary
single page request, aka
Definition
A surfer's clicking on a single web page from, say a search engine or book mark, as compared to a click to a complete website, via say entering HTTP://example.com, and as compared to a click from within your website. Even though the click from within your website is for a single page, we do not use the term to refer to that kind of reference. From within your website is is simply a reference or hyperlink reference or click or mouseover.
The single page request is the action by a surfer that results in the action by the website commonly referred to as self locating defined next.
Syntax
Discussion
For a complete discussion and analysis, continue reading until you get to contextually self locating.
Example
Analysis
Caveat
Summary
self locating, aka self location
Definition
The ability of a web page to automatically load an entire website or a frameset thereof, thus creating a larger context than simply the single page.
Syntax
Discussion
By the website's utilization of self location, or self locating pages, when a surfer clicks on a page, say from a search engine or book mark, he gets the entire website not just that page.
For a complete discussion and analysis, see contextually self locating defined next.
Example
Analysis
Caveat
Summary
contextually self locating, aka contextual self location
Definition
The ability of a web page to go a step further than self locating defined above and loading additional information, pages, or frames which help to establish the context in which the original page the single page request was originally designed for and intended to be found or located in.
Syntax
Discussion
Consider: There may be pictures or other discussion, foot notes, or reference material that, in a manor of speaking, belongs with the page.
Though self location is becoming common, contextual self location is a bit more complex, as one can not just load the page into a hodge-podge setting, but rather, must examine and understand the page and it's contextual requirements.
All pages in the
Example
Analysis
Now, under normal circumstances the surfer navigates to your website. Upon arrival, he either gets a single page with numerous links (usually a list at the top and/or a list at the bottom) for access to the entire website, or a frameset which has numerous pages which themselves have appropriate links. At your website when he clicks on one of your links, whether it be from within a page or from a menu, you can cause the specific page which is about to be loaded to load into a specific frame of the frameset, called the target defined above, allowing you to control the positioning of the content of the page to be loaded, which therefore shapes your website appearance.
Anyone, that is, any website, can do that. But what happens in the case of a single page request? Not from a link within your website, we have just discussed that. What happens when a surfer outside your website request an arbitrary page, usually from a search engine or a bookmark? How does he get the context you intended for that page which may be quite different from the context of another arbitrary page from your website?
That is what we will be discussing here. The single page request from outside your website, because we already know you can control the content he sees once he gets to your complete website by his clicking on your various links.
In a simple situation, he would get the single page he requested which has links at the top or the bottom from which he can then navigate to your complete website (as we mentioned above). This in fact is great for mobile devices since the screens are relatively small to begin with.
But what if that page actually belongs in a larger context? Say for example, associated with that page is a list. Not necessarily a menu, per se., possibly you are selling nicknacks. You have a list of nicknacks which have common characteristics. Possibly they're all of the same material, ivory, bone, quartz. Possibly they are of a similar style, say for example pictures of dogs. It is to your advantage to have that list displayed on the screen without requiring the viewer to click another link or enter a search. He's already interested in dogs. Why have him search for dogs? You might have both dog statues and dog pictures. But he has already clicked on a page of a dog picture. Your page. This is the page that brought him to your website. He has already focused his attention on this page.
Seize the moment. It is to your advantage to have that list, not another list that he has to search for, already in front of him. It is to your advantage to have other things related to that specific page already in front of him. Pricing options, membership options. Not just a link to become a member that he'd have to click on should he decide he's interested, but a full list of reasons why he should become a member already placed in front of him. It is much more convenient for him.
Now, the above was discussing nicknacks, but the same reasoning applies to whatever it is you are peddling. Even information such as at
Here's the point. Although we are accustomed to going through all these extra motions, that is only because it is the way everyone else does it! But in fact, it is not a great idea. It is actually frustrating to have to search for something twice, three times, especially when the second and third searches don't turn out the same results of the first! You search once at the search engine, you find what you think you're looking for, you click the link, and then you have to look for the search box to search again. Then you have to go through all sorts of options just to get to where you already thought you were going. And when you do get somewhere, is highly unlikely you get the page or specific information that brought you to website in the first place. You'll have to look for it. Sure, we do it all the time. Constantly being diverted, frustrated, slapped in the face, poked and prodded. But it is not a good way to do things.
So our surfer has already done the search, has clicked on the link, and that link has taken him to your dog picture.
Now unless you have dynamic page generation software to generate these pages we've been talking about, the technique you would use to establish the proper context for that page would be to have a specific frameset designed for that specific page.
Let us discuss the nature of these framesets and then we will come back to, "what if ...".
Different framesets can contain frames of the same name, vis-á-vis one another, providing they are not both used at the same time. Accordingly, one may have numerous framesets that have the same appearance structurally, but which have different predefined sets of content. waiting to be loaded
This allows one to specify a unique context, for a specific page, by establishing a unique frameset page for said page, and thus have the same general appearance of the website, yet specific content unique to that page. This is relatively easy to do, but it requires twice as many pages. The next step however is more difficult.
Now, these frameset characteristics also allow one to specify the same context, for one or more pages in a group, by specifying that each of these pages in said group utilize this common frameset vis-á-vis a separate frameset per page.
So, if for example you had a dozen pages though it could be any number, and you didn't want two dozen, you could have each one automatically point to, or link to, a common frame set. But then you would lose the uniqueness of the individual 12 pages.
But the facilities you have available to you as an
The implications are somewhat dramatic in that it allows one to specify a general context for a group of pages (that would normally have the same general context anyway), and of course different from another group, but containing the individual page that the user originally requested, without having to specify a frameset page for each page in that group.
Bear in mind, that websites which possess sophisticated dynamic page generation software to generate web pages based on say for example a user search request (once he has arrived at the website), can accomplish this. And such technique is in a manner of speaking, more sophisticated than what we are doing here at
On the other hand, it is highly unlikely that they have the capability of taking your pre assembled web pages, whether they be produced by web publishing software or whether you create them by hand, and insert them into group context specific framesets resulting in a unique context appearance, the experience, as we are here discussing and have achieved at
Now let's go back to our "what if ...".
We need a frameset which contains your list (not the list at the search engine) and these other things we were discussing: rates and reasons to become a member, or discount structures, or whatever is appropriate. Possibly a list of satisfied customers and their testimonials. Another page possibly your credentials. The testimonials and credentials pages could be common to all your pages in these single page request situations. After he has arrived and is navigating thru your website those pages might be over laid to utilize the visual space but they could then be accessed thru menu selections.
But initially when the user arrives at this page, directly from the single page request, It automatically loads the frameset to load this appropriate context without his having to click on your testimonials and your credentials, or locate the specific page that brought him to you website in the first place. And without your having to create a separate frameset page for each and every page and therefore twice as many pages.
But this is a common frameset, and any page that uses this frameset to load itself, will get only the common pages specified in this frameset plus itself.
We have taken it even one step further.
For each of these pages we've been discussing in this group that reference this common frameset, you can specify that additional frames within the frameset, can have their content replaced with specific pages. Pages specific to this specific page. Pages that override the content in any frame already loaded by the common pages but required by the specific pages.
So these would be in addition to the common pages (testimonials and credentials pages), page specific associated pages like lists, documentation, references, and citations unique to this specific page.
So now when the user arrives at this page it automatically loads the frameset to load this appropriate context without his having to click on your testimonials and your credentials, or his having to click on the page specific associated pages (lists, documentation, references, citations) which he would not know to click on anyway. And still without your having to create a separate frameset page for each and every page and therefore twice as many pages.
This is accomplished with no more than a single intFrame YYMMDD() script per frame to be reestablished.
These additional scripts are placed in the page requiring the support pages, not in the support pages themselves. In this way, every page concerns itself only with figuratively it's own world and what it needs, so there is no possibility of inadvertent modifications to already established, functional pages
Now at this point, we need a fairly detailed example to clearly show the power of just this one feature of the
This example should be as easily applicable to an auto mechanic comparing makes and models of various vehicles, their components , or of machinery, or to a cook comparing recipes, or to a hobiest comparing various models, as it is applicable to a botanist, but we shall use frogs.
Suppose you are utilizing our preestablished org_AEDOK__f_single-page-request_main-clf_ala_com.html frameset which contains the following frames:
FRAMESET | |||
org_AEDOK__f_single-page-request_main-clf_ala_com.html | |||
Name | Purpose | Location | Status |
f_main_head | AEDOK Logo AND Your Logo | Top Left | Restricted |
f_main_adm | Top Right | Use It | |
f_main_info | Ques, Advertisements | Far Left | Restricted |
f_main_work | org_AEDOK__f_single-page-request_SE-clf_ala_com.html | Main Display Area | Use It |
f_main_back | Background activities, Then refreshed with | Hidden | Rstricted |
f_main_foot | Copyright, et al. | Bottom | Restricted |
Note: f_main_work is always for main display OR additional framesets. The frameset in this table, org_AEDOK__f_single-page-request_main-clf_ala_com, uses it for the additional sub frameset org_AEDOK__f_single-page-request_SE-clf_ala_com. These two(2) nested framesets are the framesets being used for this presentation, and this page is most likely in f_SE_content, but possibly one(1) frame to the left of f_SE_content in f_SE_secondary, both frames being part of said additional-sub-frameset, here loaded into f_main_work and shown below in the next table. |
FRAMESET | |||
org_AEDOK__f_single-page-request_SE-clf_ala_com.html | |||
Name | Purpose | Location | Status |
f_SE_promo | AEDOK Promotions | Under Logo | Restricted |
f_SE_user_head | User Control Icon Menu for User Controls | To Right of Promotions | Restricted |
f_SE_user | User Controls. | To Right of User Control Icon Menu | Restricted |
f_SE_primary_head | First Level Menu Icon Controls | To Right Of Info, Above Primary | Use It |
f_SE_primary | First Level Menu or Selection Area | To Right Of Info, Below Primary Head | Use It |
f_SE_primary_work | First Level Work Area | Below Primary toward Bottom | Use It (resize) |
f_SE_primary_foot | First Level Like a Background | Below Primary at Bottom | Use It (hidden) |
f_SE_secondary_head | Second Level Menu Icon Controls | To Right Of Primary, Above Secondary | Use It |
f_SE_secondary | Second Level Menu or Selection Area | To Right Of Primary, Below Secondary Head | Use It |
f_SE_secondary_work | Second Level Work Area | Below Secondary toward Bottom | Use It (resize) |
f_SE_content_head | Content Level Menu Icon Controls | Below Secondary at Bottom | Use It |
f_SE_content | Content MAIN VIEWING AREA | Most Of Screen | Use It |
f_SE_content_work | Content Like a Background | Below Content at Bottom | Use It (resize) |
Frameset names and propose are only for general reference. The resize are designed for development as pages and programs can write tracing information generated above them, or one can launch ongoing activities into them. They are defined as very small, but can be resized upword by grabbing and stretching. One can turn off their access to user using noresize in frame tag. |
org_AEDOK__f_single-page-request_main-clf_ala_com.html
org_AEDOK__f_single-page-request_SE-clf_ala_com.html
framesets that you are using, BUT would be preset default to load the two common pages frames and, by proper specification, the specific page frame of the single page request.
But in the static situation what if the user had found your list of critters page or your bullfrog overview page instead of the bullfrog-salamander comparison page or the bullfrog-treefrog comparison page?
Upon his arrival, you would naturally want the bullfrog overview in the rightmost content frame. You would still want the list of critters in the leftmost frame. But the middle frame is vacant. Under this situation, you could do any number of things. You could display your credentials. Or you could explain that the user has jumped into the middle of an analysis and give instructions on how he should select a critter from the leftmost frames list.
To do every thing in this example so far, your need only the original four pages: the critter comparison list, the bullfrog overview, and the bullfrog-salamander and bullfrog-treefrog comparisons, plus a single additional frame set page as follows:
org_edu_mySubDomain__f_single-page-request_bullfrog-comparison.html
Don't be put off by the length of our names. You can use much shorter ones, but some of the specification is required. We shall discuss that later. This new framset, which we shall refer to here as bullfrog-comparison frameset:
specifies that it is to be loaded into frame f_main_work of org_AEDOK__f_single-page-request_main-clf_ala_com.html.
specifies that by default the list of critters the leftmost frame is to be loaded into f_SE_primary.
specifies that by default the bullfrog overview instructions is to be loaded into f_SE_secondary.
specifies that by default the bullfrog overview the right most frame is to be loaded into f_SE_content.
specifies that by default your testamonials or cridentials is to be loaded into f_main_adm the top most frame.
The bullfrog overview page
specifies that it is to be loaded into f_SE_content overriding the default, which you know is itself, but always specify where a page is to be loaded in an init() group script
The bullfrog-salimander comparison page
would specify that the list of critters is to be loaded into f_SE_primary overriding the default, but you know that is the default so you skip that, unless you have dozens of pages, you can get confused, and you want to be certain. It does not cause a problem if you specify what is already the default..
specifies that the bullfrog overview is to be loaded into f_SE_secondary overriding the default, the bullfrog overview instructions.
specifies that it is to be loaded into f_SE_content overriding the default.
The bullfrog-treefrog comparison page
would specify that the list of critters is to be loaded into f_SE_primary overriding the default, but you know that is the default so you skip that.
specifies that the bullfrog overview is to be loaded into f_SE_secondary overriding the default, the bullfrog overview instructions.
specifies that it is to be loaded into f_SE_content overriding the default.
The list of critters page
specifies that it is to be loaded into f_SE_primary overriding the default, which you know is itself, but always specify where a page is to be loaded in an init() group script
would specify that the bullfrog overview instructions is to be loaded into f_SE_secondary overriding the default, but you know that is the default so you skip that.
specifies that an introduction to your website is to be loaded into f_SE_content overriding the default.
The initFrame YYMMDD() script is used to accomplish the above (because the initLoad YYMMDD() script which was also indicated is necessary anyway. So there is only one additional script type.)
Of course there are numerous variations on this example. But one can see that by using just this one technique this one capability, it is possible to create very professional entries into your website. no stumbling around, double or triple searches or other diversions.
as a side note we would point out that many websites count on these diversions to interest you in what they really want to pedal. but it is distasteful unprofessional, and not forthright .
And it looks more complicated in writing than when one just visualizes it. Here is what you do:
Establish what you want it to look like in a default situation where you don't have enough pieces but you don't want to leave frames empty, waisting space and opportunity. That is your default specifications for the frameset, for the single page request.
For each page that can use this new frameset visualize the surroundings and what should look like. What does this page need for proper context and understanding?
Compare this visualization to the default situation. For the page itself one always specifies the frame it needs and the script always automatically overrides any default.
Then one simply adds appropriate initFrame YYMMDD() scripts to fill in the context. Bingo!
moving right along, ...
But, just like the Popeil Slicer and Dicer , there's still more.
Remember, the single page request handles the static situation. and we have just enhanced the statics situation by adding support frames to augment the context. But even though in the above discussion we jumpef back and forth between the static and the dynamic, the work we did and the frame specifications we added we're for the static situation in order to as closely approximated we can the dynamic situation.
In this static situation, the entire world is treated as one. Each and every single page request is essentially coming from the same location in the same context. That single location and context is: "outside the website."
But from within the website, we have a dynamic situation. To where a page is loaded and what support frams it requires depends upon circumstances such as which link from which other page is referencing said page. So in the dynamic situations, it might appear that the default pages specified in the initLoad YYMMDD() script and any additional intFrame YYMMDD() scripts all specified for the static situation anyway, should not be automatically loaded because they don't represent the dynamic context. One certainly can't load them all the time. That would often be clobbering numerous frames one had already established, in what might be a complex and lengthy drilling down as it's called.
However, there are dynamic situations which are identical to or closely resemble the static situation, the single page request. In these cases, it would be convenient to be able to load those support frames automatically, or at least some of them. In our bullfrog example above, if the user had saved any of those pages as bookmarks, more preferably using the
So it is desirable sometimes to be able to specify that the single page request frameset defaults pages be loaded. (Remember in the dynamic situation where the user is already at your website, the framesets themselves have already been loaded, so we are talking here about the context created by the default pages, not by the frameset which has already created its context and ambiance.)
This is accomplished by utilizing the todoitQ1() script. in conjunction with the intLoad YYMMDD() script already specified and any additional intFrame YYMMDD() scripts.
The todoitQ1() script is always placed at the point of reference to said page in lieu of a standard hyperlink reference anyway. All one need do is add a parameter which indicates that the sprPages (which would normally be ignored because this is not a single page request, it is a standard, dynamic, at-the-website, hyperlink reference) be loaded.
And there really is just one more important point.,
Suppose in our bullfrog analysis, when the bullfrog-salamander comparison page is loaded, that in addition to what we discussed, as it's support documents it specified a detailed summary which it loads into
Now, in your secondary list which contains the links which reference the bullfrog-salamander comparison page (which when clicked also loads all support documents including the one we have now added, the details summary), suppose that rather than one link there are two. Possibly a pair of small buttons. One indicates that you want the detailed summary, the other that you want the summary summary.
So we now I have two valid contexts in which the comparison pages can be loaded. One context is detailed and the other is brief. But neither the single page request context nor the context created by the intFram YYMMDD() script we've specified for the dynamic situation, is applicable.
The solution to this theoretical dilemma is the intPageGroup parameter in the intFramyymmdd() script. So in the above where we were specifying intFramyymmdd() scripts, for the bullfrog-salamander comparison page, we specify an additional intFramyymmdd() script for this new context and specify in the intPageGroup parm of the script: dcGroup, which stands for Dynamic Common Group.
And, since we have now found a second valid context, we cannot be certain that there would not be a third. And indeed one can easily conjure up additional contexts. Therefore this group specification allows, in the addition to predefined names, any additional alpha-numeric name that you require to assist you in your classification of the groups. They don't need to be defined enumerated or declared. The loading scripts simply compare what you've specified in the intFramyymmdd() script with what you have requested in the todoitQ1() script.
In summary, we've jumped around a little and we've left out all sorts of details. but this discussion was not intended to educate you precisely regarding the techniques, but rather to bring to light some of the interactions we perceive in a sophisticated contextual environment, and some easy ways to address these interactions. The specification for the individual parameters are indicated in the definitions of the scripts.And precise, simple, implementation is indicated in the step-by-step implementation section.
Caveat
Summary
Self locating is the ability of a loan page from a single page request to essentially load the entire website. This is relatively common for commercial websites. Contextually self locating is the ability of a single page request to load, in addition, support pages to establish a broader context specific to the single page request page. Without advanced dynamic page generation software it is difficult to accomplish. Web pages generated published by common website publishing software do not have this ability.
Self location is accomplished thru the use of the init() script. The init() script achieves basic self location but not the more advanced contextual self location. The init() script is used for framesets themselves since they establish the context. Also becuase it has fewer parameters, it is also used for specialized situations like self learning.
Contextual self location is accomplished thru the use of the initLoadyymmdd() script. The initLoadyymmdd() script is used in lieu of the init() script. Required is either one or the other, never both.
Further, the concept of contextual self location, can be broken into three(3) broad groups with a fuzzy and overlapping borders towit:
single page request (context establishing pages) aka sprPages or sprGroup. These are pages which establish the general context of the individual page in the static situation of an external request for said page, in addition to the website's standard context and theme producing pages. For example, a help page is not going to have the same context, the same surrounding subpages and supporting documents, as an in-depth analysis of the bullfrog.
dynamicCommon (pages common to numerous dynamic circumstances), aka dcPages or dcGroup. These are pages which often one would want loaded anyway in the dynamic situation of a link from within one's own website to said page, such as testamonials and credentials.
dynamicSpecific (pages specific to the individual page regardless of dynamic circumstances), aka dsPages or dsGroup. These are pages which properly belong with said page in the dynamic situation of a link from within one's own website, such as lists, documentation, references, and citations.
The initFrameyymmdd() script is used to load these support frames.
But ironically,in the final analysis it turns out that the borders between these three groups is so indeterminent that one cannot specify with certainty into which group any particular support frame should be placed. The solution to this theoretical dilemma is as follows:
The initFrameyymmdd() scripts which individually specify a support page and destination frame among other things, and which are placed in the page requiring these support pages, has an initPageGroup parameter. The initPageGroup parameter specifies one or more groups in which the represented page belongs. The specification is in the form of alphanumeric names. There are three(3) predefined names: sprGroup single page request, dcGroup dynamicCommon, and dsGroup dynamicSpecific, plus any number of additional group names specified by the author to facilitate easy grouping. The loading sequence and priorities is as follows:
On a single page request, the sprGroup is loaded after the standard
On a click or mouseover author specifiable, of a link specified by a todoitQ1() script which replaces standard hyperlink references in a page of the
On the same click or mouseover, of said link specified by said todoitQ1() script, the dsGroup is loaded, only if specified in said todoitQ1() script, as well as any other groups only if specified. Thus the dynamic specific context has been established, such as lists, documentation, references, and citations.
But, additionally, the order of the pages loaded within a given group is in accordance with the order of the physical placement of the initFrameyymmdd() scripts. All these factors combined provides a cascading style capability, rendering it unnecessary to worry about the single page request context or the dynamic common context interfering with the more important dynamic specific context.
So you control the sprGroup at the time you create the specific page, and you control the dcGroup and dsGroup at the point of reference to said page within your website at the context point.
DEFINITION SUMMARY
Thus ends the initial installment of definitions.
Note hat we left out countless details and specifications because this section is not intended for that purpose. But we tried to give sufficient details and specifications to render the discussion intelligible.
We will now proceed to the scripts but will introduce additional definitions as needed.
FOOTNOTES
Integrating Web Pages Smoothly Into The
scripts OVERVIEW
The scripts are of two(2) varieties: required and optional. The required scripts are required in order for the page to integrate smoothly into the
Naturally, all specifications must be letter perfect, but in addition to this requirement, we must point out that because we have achieved the difficult feat of cross domain referencing using relative addresses (not absolute addresses), the concept of relative addressing must be understood in a more complex context. Traditionally, the relative address specified is relative to the page containing the reference. This is clear and simple. However,
Unfortunately, in the event of a page not found, many browsers do not have the courtesy of informing one of the name of the page or the address which had been specified. Remember, this is a multiframe environment, and the page name/address you reference will most likely not appear in the browsers url line. Under such circumstances, one does not know whether his error is a spelling error, a punctuation error, or a specification error, and may spend literally hours tracking down a single link!
However, utilizing
At the time of this writing there are only three(3) required scripts, the
Scripts Required: init()
Script init()
The
However, even though
There can be testing situations in which one is himself learning of the functionality of some HTML javaScript, PHP, ect. component. Under such circumstances, the specifications required by the more advanced scripts from the init group are often inappropriate, because those scripts are designed to be rudimentally self checking of the input parameters. These requirements can become a burden. Under these circumstances,
Scripts Required: init()
Script init()
init(), aka init() script
Definition
init() script initializes variables, settings, and features including basic self loading, but not contextual self loading.
Syntax
init( clfUrl, clfToFrame , clfOfFrameset , initTopSub , initType , debug , iam );
Abbreviations
init
initialization
Functionality
The init() script returns no value, but sets numerous global variables. It is required in all pages (
Parms
Parm 1: clfUrl
The technical full name not the display name/titleof the page containing the script.
A string value in the form of a frameset relative address defined earlier. if you understand the information presented regarding a frameset relative address and a backaround relative address then the following will be a refresher.
clfUrl consisting of three parts towit:
frameset relative address no-delimiter technicalPageName . extension
Subpart: frameset relative address
The frameset relative address of the page with respect to clfOfFrameset parm 3.
Subpart: technicalPageName
The case sensitive, alphanumeric, dash and underscore name of the page
Subpart:extension
The type of page in preferably lower case (html, php, etc.).
Parm 2: clfToFrame
The name of the frame into which clfUrl parm 1 is to be loaded.
Parm 3: clfOfFrameset
The name of the frameset page containing the frame clfToFrame parm 2
Parm 4: initTopSub
The full sub domain name at
top _ sub _ subSub _ subSubSub ..
The singleUnderscore(_) is a delimiter, not a specifier. accordingly, there is no leading singleUnderscore(_) and there is no trailing singleUnderscore(_).
Parm 5: initType
An integer value of [ -2, -1, 0, 1, 2 ] to indicate the type of page technically in the event of a single page request.
Parm 6: debug
An integer value of [ 0, 1, 2 ] to specify the level of debug tracing.
Parm 7: iam
A string used with debug parm 6 to provide additional tracing information.
Usages
Usage: Initializing frameset pages.
framesets do not require contextual self loading which init does not provide because framesets provide the context. Subsequently, other pages requiring a context, and therefore contextual self loading, utilize the context provided by said frameset.
Example
Initializing
init("org_AEDOK__f_main-clf.html","","org_AEDOK__f_main-clf.html","",1,0,"html");
In the above example, any existing frames in the current browser window will be cleared and the frames themselves will be eliminated, then the clfOfFrameset Parm 3 by name org_AEDOK__f_main-clf.html, will load into the browser window with all default frames pages.
The reason all defaults are loaded is because clfToFrame Parm 2 is null. Had clfToFrame Parm been specified, init()would initiate an alert followed by an abort. The reason is because clfUrl Parm 1 is equal to clfOfFrameset Parm 3. clfUr Parm 1 is the name of the page and clfOfFrameset Parm 3 in the frameset to be used, and they can properly be the same, but one cannot load the page into itself.
Further, in this example, initTopSub Parm 4 is null. This is permitted, because the information it would have provided is presented in the first segment of clfOfFrameset Parm 3, as indicated by the double underscore(__) in clfOfFrameset Parm 3.
Remember, the
Moving right along, further, in this example, initType Parm 5 is 1 which specifies that this is a frameset. Note again, we could have derived this frameset information from the first part of the second part of clfOfFramesetParm 3, to wit: f_, another
Finally, in this example, we come to the optional parameters, debug Parm 6 and iamCaller Parm 7. Notice that although the perameter debug Parm 6 itself is a numeric value, one can in all such parameters, numeric or otherwise, specify a variable, which we have done here by using a variable of the same name, for both. The variables do not have to be the same name, we just find it easier to keep track of things that way. The script variable debug defined earlier is our commonly used variable which we often switch from 0 to 1, though it has other values, thereby allowing activation of an entire sequence of debugging alert traces. The script variable iamCaller defined earlier is the variable which we generally set to the name of the page or script containing the init() call, with any prior callers appended to its name. We almost always use the pair together, and all scripts allow specification of
these 2
optional parameters debug and iamCaller even scripts having no required parameters, because it is useful to have, the name and prior callers. However, the perameter itself iamCaller Parm 7, is actually a string value and one may insert any useful textual information such as line numbers in quotes, program locations, or error messages.
Usage: Learning about web functionality.
There can be testing situations in which one is himself learning of the functionality of some HTML javaScript, PHP, ect. component. Under such circumstances, the specifications required by the more advanced scripts from the init group are often inappropriate, because those scripts are designed to be rudimentally self checking of the input parameters. These requirements can become a burden. Under these circumstances,
Example
[html>
[html>
Analysis: init(), aka init() script
clfUrl stands for "clear and load frames, url". The term "clear and load frames" is an
For a fairly quick comprehensive understanding of this functionality of this script, proceed from left to right and visualize the simple variations first, viz:
clfUrl Parm 1 is loaded into clfToFrame Parm 2 of frameset clfOfFrameset Parm 3. If clfUrl Parm 1 is clfOfFrameset Parm 3 and clfToFrame Parm 2 is null, then all default pages will be loaded. These default pages are specified in the body of the actual frameset page, which we call here clfOfFrameset Parm 3.
Notice we say, "If clfUrl is clfOfFrameset and clfToFrame is null, ...". Indeed, if clfUrl Parm 1 is clfOfFrameset Parm 3 then clfToFrame Parm 2 must be null because one can not load a frameset into itself!
The script checks for this condition and issues an abort error if clfUrl Parm 1 is clfOfFrameset Parm 3 and clfToFrame Parm 2 is not null.
We could have simply "corrected" the error by ignoring clfToFrame Parm 2 (ostensibly in the name of robustness), but that would give the impression that such specifications are correct, which they aren't, and later on down the line one could easily become confused as to why other things don't behave in accordance with the implications of the wrong usage.
Caveat
Summary
Parameter Details
Reminder
Now in this discussion of init() we have, and we have before, and we shall continue to, present considerable detail regarding debugging capabilities. You may be wondering why we are discussing debugging programs when you, are supposed to be publishing your intellectual work product!
Remember, these scripts which are actually quite easy to use, have been designed in an environment consisting of multiple subdomains, utilizing browsers that arrogantly refused to give the name of the page that they could not find, evidently a systemic inability to give the name of the page requesting the page that could not be found, and ridiculous JavaScript which usually gives no indication of an error but rather proceeds and pretends as though there was none, ostensibly in the name of robustness, which results in unpredictable, non- understandable, chaotic results !
You should not, and most likely will not, have these problems. If you install a page which comes up not found, check the parameters, punctuation, and spelling, and the problem should be quickly rectifed
Finally, this debugging is not an ongoing thing. Once a page is installed and operational, you are done. Until of course you make another reference to it which of course must be properly specified.
By the way, the reason our narration is oftimes detailed and lengthy, is because it is in our nature. We are, after all,
And Thank You for being a part of it.
Scripts Required: init()
init
(
clfUrl
,
clfToFrame
,
clfOfFrameset
,
initTopSub
,
initType
,
debug
,
iam
); |
|||||||||||||
Parm 1: clfUrl |
|||||||||||||
Purpose | Address of page to initialize and load. | ||||||||||||
Status | Required | ||||||||||||
Type | String | ||||||||||||
Format | Fixed | frameset relative address | |||||||||||
Form | framesetRelativeAddressPt technicalPageNamePt | ||||||||||||
Descript | The frameset relative address of the page clfUrl with respect to clfOfFrameset parm 3. | ||||||||||||
Leadin | No | ||||||||||||
Parts | 2 | ||||||||||||
Separate | No | ||||||||||||
Leadout | No | ||||||||||||
Eg 1 real | ../all/ all_all__about_mission__intro .html | ||||||||||||
Pt 1 | framesetRelativeAddressPt | ||||||||||||
Form | framesetRelativeAddress of page clfUrl with respect to frameset clfOfFrameset. | ||||||||||||
Descript | Starting at the address of clfOfFrameset parm 3, backup( ../ ) as many levels as necessary to get to level 3 which is depth 1, eg., all, edu or ent. Then backup( ../ ) one more level. Finally, go forward( subDomain/ ) thru any necessary subDomains, starting with eg., all/, edu/ or ent/, and go forward( dir/ ) thru any necessary directories all the way down to the page clfUrl, but don't include the page which is described separately next. | ||||||||||||
Leadin | No | ||||||||||||
SubPts | Buried in Description. | ||||||||||||
Separate | Buried in Description. | ||||||||||||
Leadout | Buried in Description. | ||||||||||||
Eg1p1 real | ../all/ | ||||||||||||
Pt 2 | technicalPageNamePt | ||||||||||||
Form | Case-sensitive alphanumeric( a-z , A-Z , 0-9 ), dash( - ), and underscore( _ ) name of page, including dot( . ) extension. | ||||||||||||
Leadin | No | ||||||||||||
SubPts | 2 | See Form. | |||||||||||
Separate | dot( . ) | See Form. | |||||||||||
Leadout | No | ||||||||||||
Eg1p2 real | all_all__about_mission__intro .html | ||||||||||||
Eg 2 real | all_all__about_mission__intro .html | ||||||||||||
Pt 1 | framesetRelativeAddressPt | ||||||||||||
Eg2p1 real | null | ||||||||||||
Pt 2 | technicalPageNamePt | ||||||||||||
Eg2p2 real | all_all__about_mission__intro .html | ||||||||||||
. | |||||||||||||
Parm 2: clfToFrame |
|||||||||||||
Purpose | Frame of clfOfFrameset into which clfUrl is to be loaded. | ||||||||||||
Status | Illusive | ||||||||||||
Detail |
If clfType parm 5 is 1, that means that clfUrl parm 1 is a frameset itself. In that case there are two possibilities towit: First of two(2) possibilities: If clfUrl parm 1 is the same as clfToFrameset parm 3, that means we are clearing and loading framess from scratch, and frameset clfUrl parm 1 is the first to be loaded. In this case, clfToFrame parm 2 must be specified null, otherwise we would be loading this page into a frame of itself. Second of two(2) possibilities: If clfUrl parm 1 is not the same as clfToFrameset parm 3, that means we are loading frameset clfUrl parm 1 into another frameset, namely clfToFrameset parm 3, so clfToFrame parm 2 must not be specified null, it must be specified, otherwise we would not know into which frame it should be loaded. See clfType parm 5 below for complete enumeration of possibilities. |
||||||||||||
Type | String | ||||||||||||
Format | Fixed | f_ frameName | f_ frameName _ subName | etc. | |||||||||||
Form | frameIndicator frameName [ subName [ ... ] ] | ||||||||||||
Descript |
Both the frameIndicator and the separator are acceptable characters in the underlying HTML frame naming character set, and are therefore strictly speaking not punctuation. The reason is that in viewing a script reference, frame names established in this manner are easy to spot and thereby assist one in delineating in one's mind what are sometimes numerous parameters. |
||||||||||||
Leadin | No | ||||||||||||
Parts | At least 2 | ||||||||||||
Separate | underscore( _ ) | ||||||||||||
Leadout | No | ||||||||||||
Eg 1 real | f _ main _ work | ||||||||||||
Pt 1 | frameIndicator | ||||||||||||
Form | The lower case character( f ) | ||||||||||||
Leadin | No | ||||||||||||
SubPts | No | ||||||||||||
Leadout | No | ||||||||||||
Thus | f | ||||||||||||
Pt 2 | frameName or frameGroup | ||||||||||||
Form | Case-sensitive alphanumeric( a-z , A-Z , 0-9 ), dash( - ), and no underscore( _ ) | ||||||||||||
Leadin | No | ||||||||||||
SubPts | No | ||||||||||||
Leadout | No | ||||||||||||
Eg1p1 real | main | ||||||||||||
Pt 3 etc. | subName in frameGroup | ||||||||||||
Form | Repeat part 2 immediately above. | ||||||||||||
Eg1p2 real | work | ||||||||||||
Eg 2 | f _ main | ||||||||||||
Pt 1 | frameIndicator | ||||||||||||
Eg2p1 | f | ||||||||||||
Pt 2 | frameName or frameGroup. | ||||||||||||
Eg2p2 | main | ||||||||||||
Pt 3 etc. | subName in frameGroup | ||||||||||||
Eg2p3 | n/a | ||||||||||||
. | |||||||||||||
Parm 3: clfOfFrameset |
|||||||||||||
Purpose | Frameset containing clfToFrame into which clfUrl is to be loaded. | ||||||||||||
Status | Required | ||||||||||||
Type | String | ||||||||||||
Format 1 | NOT IMP |
|
|||||||||||
Status | domainRelativeAddress NOT IMPLEMENTED | ||||||||||||
Form | domainRelativeAddress | ||||||||||||
Descript | |||||||||||||
Leadin | No | ||||||||||||
Parts | No | ||||||||||||
Leadout | No | ||||||||||||
Eg 1 | org/edu/knowItAll/frameset_main.html | ||||||||||||
Format 2 | Prefered | domain-relative address as part of page name | |||||||||||
Form | topSubPt descriptivePt [ framesetExtensionPt ] htmlPt | ||||||||||||
Descript |
The naming of a page incorporating the full domain-relative address in a manner compliant with conventional page naming syntax and characters, but with additional syntax such that: The address portion of said domain-relative address is specified here (1st) as topSubPt, replacing any slash( / ) with under( _ ), to indicate the subParts, What wuld have been the page name being specified (2nd) as descriptivePt, separated from the first by a doubleunder( __ ), An optional extension to the frameset being specified (3rd) as framesetExtensionPt, separated from the second by a trippleunder( ___ ), if present otherwise no trippleunder( ___ ) either. And the original html extension being specified (4th) as htmlPt, separated from the second (or third) by a dot( . ), this last part being of course any other valid extensions in addition to html, even though we refer to it here as html, but nothing past it. This entire sequence is what one names the page on his computer in his web publishing package. |
||||||||||||
Leadin | No | ||||||||||||
Parts | 4 | ||||||||||||
Separate | Pt 1 Subs | under(_) | Re:Description. | ||||||||||
Separate | Pt 2 | 2under(__) | Re:Description. | ||||||||||
Separate | Pt 3 | 3under(___) | Re:Description. | ||||||||||
Separate | Pt 4 | dot(.) | Re:Description. | ||||||||||
Leadout | No | ||||||||||||
Discuss |
init() script requires the domain-relative address. The sequencing and priorities are as follows: init() script looks to initTopSub parm 4 for the domain-relative address. If not spec, init() script looks to topSubPt parm 3 (Format 2) for the domain-relative address. If not spec, the page won't do a proper load on a single page request, but all else being proper, will still load on a standard reference from your website whether using Independently, if topSubLeadoutPt parm 3 (Format 3) is spec, init() script prepends initTopSub parm 4 to the frameset name before looking for said frameset coincidentally utilizing initTopSub parm 4 as it's address. If not spec, again the page won't do a proper load on a single page request, but all else being proper, will still load on a standard reference from your website whether using Finally, if both topSubPt parm 3 (Format 2) and initTopSub parm 4 are spec, init() script will use topSubPt parm 3 in determining both the name and address of the associated frameset, but use initTopSub parm 4 for all else. To reitterate this last step, init() script will not replace topSubPt parm 3 (Format 2) with initTopSub parm 4 in a manor similar to Format 3 whereby it prepends initTopSub parm 4 to the name, which would override topSubPt parm 3, but will rather, use topSubPt parm 3. |
||||||||||||
Eg 1 real | org _ AEDOK __ f_single_page_request_main-clf_ala_com . html | ||||||||||||
Eg 2 |
initLoad150801( "localPage.html" , "f_SE_content" , "org_edu__f_spr_main___group2.html" , "org_edu_knowItAll", 0 , debug , iam ); |
||||||||||||
Eg 2 det | org _ edu __ f_spr_main ___ group2 . html | ||||||||||||
Eg 2 desc |
localPage.html, will be loaded into frame f_SE_content, of frameset org_edu_knowItAll__f_spr_work___group2.html, located in org/edu/knowItAll, after said work frameset is loaded by org_edu__f_spr_main.html, located in directory org/edu, an AEDOK directory. Note that the value of 0 for initType parm 5 indicates that localPage.html, is a standard page. |
||||||||||||
Eg 2 ana |
localPage.html, is a local page because it has no address spec and is therefore local to the root directory of this specific subdomain org_edu_knowItAll, thus org/edu/knowItAll. It will be loaded into frame f_SE_content which needs no address because it is a frame. f_SE_content is a frame in either org_edu__f_spr_main.html or org_edu_knowItAll__f_spr_work___group2.html, it doesn't matter as the frames of a nested frameset are collected together with the frameset that loads it. (So, we don't ackually know from these spec that it is a frame of org_edu_knowItAll__f_spr_work___group2.html, but again all that matters is that it is a frame of the total frameset being loaded.) The initial frameset org_edu__f_spr_main.html is located in org_edu spec in it's name. It will first load the frameset of similar name plus framesetExtensionPt ___group2, the resultant name being org_edu_knowItAll__f_spr_work___group2.html which itself is located in org_edu_knowItAll, spec by initTopSub parm 4,thus org/edu/knowItAll. The value of 0 for initType parm 5 indicates that localPage.html is a standard page and refers to the page being loaded, not the framesets required to load it. |
||||||||||||
. |
topSubPt | ||||||||||||
Form | See initTopSub parm 4 | ||||||||||||
Leadin | No | ||||||||||||
SubPts | Multi | ||||||||||||
Separate | under( _) | See Format 2 Description. | |||||||||||
Leadout | doubleUnder( __ ) | ||||||||||||
Descript | topSubPt and initTopSub are identical except that topSubPt is a part of this format and precedes descriptivePt and is actually a part of the page name (if one elects to use this format) but initTopSub stands alone as simply a parm. | ||||||||||||
Discuss |
One additional advantage to this technique is that regardless of how hard one tries, a directory inevitably collects files that are not pages uploaded to the website. These are generally intermingled with the website pages in a manner similar to shuffling a deck of cards. But by using this technique on naming functional web pages, they become automatically grouped together leaving the flotsam to float elsewhere. Of course, under different circumstances it would be ridiculous to follow this technique, for it defeats a couple of advantages of a subdirectory structure. But it serves its purpose here. |
||||||||||||
Eg1p1 real | org _ AEDOK __ | ||||||||||||
Eg2pt1 | org _ edu __ | ||||||||||||
. |
Pt 2 | descriptivePt | |||||||||||
Form | Case-sensitive alphanumeric( a-z , A-Z , 0-9 ), dash( - ), and under( _ ) | ||||||||||||
Leadin | No | ||||||||||||
SubPts | No | ||||||||||||
Leadout | No | ||||||||||||
Descript | The normal page name one would have given the page using html syntax and character set. | ||||||||||||
Discuss |
Because browsers have idiosyncracies, it is wise to
use a conservative character set comprises as above,
though html may strangle on less conventional characters. Specifically, the page name must be capable of being used in the html local page reference naming technique ... href="pageName.html#localRef" ... . . . < a name="localRef"> where you have provided the pageName and either you or we provide the localRef, as well as other techniques. Even the dash( - ) poses some problems when using javascript, but none we have not so far been able to circumvent. |
||||||||||||
Discuss |
Further, there are two opposing techniques utilizing a combination of the dash( - ) and the under( _ ). The first is to use the dash( - ) to separate and the under( _ ) to create word phrases without using space. The second is the reverse. We have determined that due to the size of the ( _ ) being larger than the dash( - ) and thus more suitable for separation, that this second technique is better.
That is, to hyphenate phrases into single-word-concepts, as we have just done, and use the under( _ ) to separate without using spaces.
Eg., notice in our frame name org_AEDOK__f_single-page-request_main-clf_ala_com.html the part single-page-request is "one-word-phrase", so to speak, separated from main-clf (which means main-clear-and-load-frames) another word-phrase, by the under( _ ), which is then separated from ala which means "in the manor of", further separated from com, (used in our com domain). These so-called separations are sort of like very loose conceptual subdivisions, whereas the word-phrases are multiple words use to covey a single thought. |
||||||||||||
Important |
You must not use doubleUnder( __ ) or tripleUnder( ___ ) or any other multipleUnder( ____ ) for any purpose other than as we have spec in this documentation, otherwise all manor of calamity will ensue.
|
||||||||||||
Eg1p2 real | f_single_page_request_main-clf_ala_com | ||||||||||||
Eg2p2 | f_spr_main | ||||||||||||
. |
Pt 3 | framesetExtensionPt | |||||||||||
Form | Case-sensitive alphanumeric( a-z , A-Z , 0-9 ), dash( - ), and underscore( _ ) | ||||||||||||
Leadin | tripleUnder( ___ ) | ||||||||||||
SubPts | No | ||||||||||||
Leadout | No | ||||||||||||
Descript |
A frameset subdivision name which has no meaning in html but which has meaning to topSubPt descriptivePt . htmlPt which would normally load a nested frame of a name similar to it's own, but in your directory specified by initTopSub parm 4 , will now instead reference a frameset of similar name with framesetExtensionPt inserted between the end of said similar name and the htmlPt, thus: topSubPt similarPt ___ framesetExtensionPt . htmlPt |
||||||||||||
Discuss |
As discussed before, a frameset can load into one of its frames a page which itself is another frameset, called a nested frameset. Normally, for convenience and to avoid unnecessary confusion, both pages are in the same directory, and very often of similar name. These preestablished framesets referenced, which we generally referred to as main and as often contain the word main, establish the overall However, for additional flexibility, the The Level 4 Active Member's work frameset has a name identical to the Because these specs are on a page by page basis, contained within the top of each web page, said spec could be for any directory accessible to the Level 4 Active Member, not just his root directory, which is what initTopSub parm 4 generally refers to. However, for orderliness, However, to further expand the freedom of variation, one may specify any number of work framesets of the similar name to the main one selected. This is the purpose of framesetExtensionPt which is simply appended to the descriptivePt after changing the word main to work, thus:. org_edu__f_spr_main.html org_edu__f_spr_work___framesetExtensionPt.html This naming convention applies only to these paired or grouped framesets that we create and describe in this manor. The other pre-established framesets referred to above which reside totally with in the Some Level 4 Active Member may spend their entire career utilizing only But we do attempt to refrain from arrogance and realize that there are any number of other configurations more suited to difference venues. |
||||||||||||
Eg1p3 real | Not used in this example. | ||||||||||||
Eg2p3 | ___ group2 | ||||||||||||
. |
Pt 4 | htmlPt | |||||||||||
Form | extension | ||||||||||||
Leadin | dot( . ) | ||||||||||||
SubPts | No | ||||||||||||
Leadout | No | ||||||||||||
Descript | The standard extension on a page name, which for our purposes usually html or php, etc. | ||||||||||||
Discuss |
Although we refer to is as htmlPt it includes any other valid extension |
||||||||||||
Eg1p4 real | . html | ||||||||||||
Eg2p4 | . html | ||||||||||||
Eg 3 real | org _ AEDOK __ f_single_page_request_SE-clf_ala_com . html | ||||||||||||
. |
Pt 1 | topSubPt | |||||||||||
Eg3p1 real | org _ AEDOK __ | ||||||||||||
. |
Pt 2 | descriptivepart | |||||||||||
Eg3p2 real | f_single_page_request_main-clf_ala_com | ||||||||||||
. |
Pt 3 | framesetExtensionPt | |||||||||||
Eg3p3 real | Not used in this example. | ||||||||||||
. |
Pt 4 | htmlPt | |||||||||||
Eg3p4 real | . html | ||||||||||||
Eg 3 | org _ edu _ knowItAll __ frameset_main . html | ||||||||||||
. |
Pt 1 | topSubPt | |||||||||||
Eg4p1 | org _ edu _ knowItAll __ | ||||||||||||
. |
Pt 2 | descriptivepart | |||||||||||
Eg4p2 | frameset_main | ||||||||||||
. |
Pt 3 | framesetExtensionPt | |||||||||||
Eg4p3 | Not used in this example. | ||||||||||||
. |
Pt 4 | htmlPt | |||||||||||
Eg4p4 | . html | ||||||||||||
Format 3 | 2nd Pref | domain-relative address from initTopSub parm 4 | |||||||||||
Form | [ topSubLeadoutPt ] descriptivePt [ framesetExtensionPt ] htmlPt | ||||||||||||
Descript |
The naming of a page utilizing (but not incorporating) the full domain-relative address in a manner compliant with conventional page naming syntax and characters, but with additional syntax such that: The address portion of said domain-relative address is not specified here, but rather, obtained from initTopSub parm 4. However, the lead out portion of topSubPt, as defined in Format 2 above, the doubleunder( __ ), is optionally specified here as topSubLeadoutPt, to indicate that topSubPt is actually specified in the page name, but is omited here for brevity. The descriptivePt is the same as in Format 2 above. The optional framesetExtensionPt is the same as in Format 2 above. And the htmlPt is the same as in Format 2 above. |
||||||||||||
Requires | You must spec initTopSub parm 4. | ||||||||||||
Discuss |
init script requires the domain-relative address. In this Format 3 of specifying clfOfFrameset, the domain-relative address is obtained from parm 4 of the script, initTopSub. The advantage of this Format 3 over Format 2 is most apparent when using initLoadyymmdd, which is the script normally utilized, whereby, the parameters though the first four(4) are the same are reversed the first parameter being initTopSub is followed by initFrameset which contains initTopSub (which is called topSubPt) as its first part when using Format 2 thereby producing visual clutter, especially if initTopSub becomes long as it can. Eg: initLoad150801( "org_AEDOK", "org_AEDOK__f_single-page-request_main-clf_ala_com.html" , "f_SE_content" ... vs. initLoad150801( "org_AEDOK", "__f_single-page-request_main-clf_ala_com.html" , "f_SE_content" ... |
||||||||||||
Note | Be sure to read Format 2, Discuss to understand the interrelationships and priorities of initTopSub, topSubPt, and topSubLeadoutPt | ||||||||||||
. | |||||||||||||
Parm 4: initTopSub |
|||||||||||||
Purpose |
Specification of the absolute location (exclusive of page name) of clfOfFrameset within the |
||||||||||||
Status | Contigent | If topSubPt is spec in clfOfFrameset parm 3, part 1 above, this parm 4 is not required, Otherwise , this parm is required.. | |||||||||||
Type | String | ||||||||||||
Format | Fixed | domain-relative address, exclusive of page name | |||||||||||
Form | subDomain subSubDomain .. subDir subSubDir, .. | ||||||||||||
Descript | Complete sequence of subDomains followed by complete sequence of subDirectories up to but not including page, each separated from one another by a single underscore( _ ), collectively representing the domain-relative address exclusive of page. | ||||||||||||
Note | Be sure to read Format 2, Discuss to understand the interrelationships and priorities of initTopSub, topSubPt, and topSubLeadoutPt | ||||||||||||
Leadin | No | ||||||||||||
Parts | 1 or More | ||||||||||||
Separate | under(_) | See Description. | |||||||||||
Leadout | No | ||||||||||||
Eg1 | org / edu / knowItAll / dir1 / deeper-dir / | ||||||||||||
Pt Each | subDomain subSubDomain .. subDir subSubDir, .. | ||||||||||||
Form | Case-sensitive alphanumeric( a-z , A-Z , 0-9 ), dash( - ), and no underscore( _ ) | ||||||||||||
Leadin | No | ||||||||||||
Leadout | No | ||||||||||||
SubPts | No | ||||||||||||
Eg 1 | org_edu_knowItAll_dir1_deeper-dir | ||||||||||||
Eg 2 | EG2FULL | ||||||||||||
Pt 1 | REPEAT PT1NAME | ||||||||||||
Eg 2 | EG2PT1 | ||||||||||||
. | |||||||||||||
Parm 5: initType |
|||||||||||||
Purpose | Indicates the type of page technically in the event of a single page request. | ||||||||||||
Status | Optional | ||||||||||||
Type | Integer | ||||||||||||
Format | Specific | ||||||||||||
Values | Page Type | Action | |||||||||||
-2 | Reserved | ||||||||||||
-1 | Sys Funcs | No Action | |||||||||||
Default | 0 | Regular | Clear And Load Frames (clf). | ||||||||||
1 | Frameset | Clear And Load Frames (clf). | |||||||||||
2 | Special | Load without clearing. | |||||||||||
Values | End | ||||||||||||
Discuss |
Used only for single page request. Specific values indicate the type of page from a technical point of view, not a content point of view. There are basically only three(3) types, towit: A common page, a frameset, and special system-functionality pages that for the most part one will likely never see. Simply ask the question, "Is it a frameset or not?" Notice that the default is zero, since most pages are not, and the parm itself is optional. For content type specification, use inityymmdd script defined below. |
||||||||||||
. | |||||||||||||
Parm 6: debug |
|||||||||||||
Purpose |
For debugging the initial integration of a page into the |
||||||||||||
Status | Optional | ||||||||||||
Type | Integer | ||||||||||||
Format | Specific | ||||||||||||
Values | Depth | Action | |||||||||||
Default | 0 | Off | Off, but critical alerts shall be issued. | ||||||||||
1 | Detail | On. alerts at significant points as a trace. | |||||||||||
2 | Important | On. alerts of important or summary info. | |||||||||||
Values | End | ||||||||||||
Discuss |
Debug allows one to see what Critical alerts are issued regardless. For example, by default, if a frame name can't be found, it alerts and attempts an abort. This is because something like not finding a frame name is generally not a dynamic situation, it is static. If a frame can't be found, it is most likely misspelled or belongs to a different frameset, either case of which occurs as one is integrating the page, and one needs to know immediately and with certainty. But, to reitterate, once a page has been integrated, the frame name required will not change, and so the alert will never occur when a user is referencing that page. But still, there are conceivable instances when it would be more convenient to turn off this specific check, or at least the alert and abort. For example, many browsers simply open a new window for frame not found, And, if one has not yet gotten around to defining a special frameset, but knows the name of the frame within it, he might want to spec the correct frame, and have the browser open a new window until such time as he solidifies the new frameset. So, eventually, there shall be the ability to change this default setting via user preferences, settings and controls. |
||||||||||||
Note | There are a plethora of other courtesy checks which inityymmddLoad script and inityymmddFrame script (not this init script) performs which are not critical but which none the less indicate that things will not go as intended. Again usually spelling errors which, eg., might result in the theme of a page being wrong. Currently those checks and actions are set to what we think are reasonable but eventually one shall have the option to set each and every one of them in accordance with dynamic requirements. | ||||||||||||
. | |||||||||||||
Parm 7: iam |
|||||||||||||
Purpose |
For debugging the initial integration of a page into the |
||||||||||||
Status | Optional | ||||||||||||
Type | String | ||||||||||||
Format | Free | ||||||||||||
Discuss |
When an alert is issued as per debug parm 6 the intent is to provide tracing information within each alert so that one can follow the flow, in an environment which is otherwise implementor-hostel, as follows: When a function is entered, a local variable iam is assigned is's name. When said function calls another function, it passes this name to that function, but adds information. When it was called, it's caller passed it's name which this function receives as the variable caller. So upon entry to a function, that function has it's own name and it's caller's name, so it sets a third local variable, iamCalleraller to the value of it's own name followed by it's caller's name, separated by a percent( % ). This process goes on and on, so that every time a function is entered, one not only knows it's name, but who called it. Each time the list gets longer. In a multi frame environment, and therefore multiple threads, each calling similar and/or the same functions often multiple times, otherwise one's mind is turned to putty. For the initial call, for example in init, one can place any useful text string. |
||||||||||||
End | |||||||||||||
FOOTNOTE |
Scripts Required: initLoad150801()
function initLoad150801( initTopSub, initFrameset, initFrame, initIam, initSpr, initType, initPageGroup, initPageTitle, initPageFunc, initPageLevel, initPageIcon, initPageIconAlt, debug, iam )
initLoad150801() ( initTopSub , initFrameset , initFrame , initIam , initSpr , initType , todoitQpageGroup , todoitQpageTitle , todoitQpageFunc , todoitQpageLevel , todoitQpageIcon , todoitQpageIconAlt , debug , iam ); |
|||||||||||||
Parm 1: initTopSub |
|||||||||||||
Purpose |
Specification of the absolute location (exclusive of page name) of initFrameset within the |
||||||||||||
Status | Required | ||||||||||||
Type | String | ||||||||||||
Details | See init() script parm 4 for specifications. | ||||||||||||
. | |||||||||||||
Parm 2: initFrameset |
|||||||||||||
Purpose | Frameset containing initFrame into which initIam is to be loaded. | ||||||||||||
Status | Required | ||||||||||||
Type | String | ||||||||||||
Details | See init() script parm 3 for specifications. | ||||||||||||
. | |||||||||||||
Parm 3: initFrame |
|||||||||||||
Purpose | Frame of initFrameset into which initIam is to be loaded. | ||||||||||||
Status | Required | ||||||||||||
Type | String | ||||||||||||
Details | See init() script parm 2 for specifications. | ||||||||||||
. | |||||||||||||
Parm 4: initIam |
|||||||||||||
Purpose | Address of page to initialize and load. | ||||||||||||
Status | Required | ||||||||||||
Type | String | ||||||||||||
Details | need details. | ||||||||||||
. | |||||||||||||
Parm 5: initSpr |
|||||||||||||
Purpose | Address of page to initialize and load in the event of a single page request. | ||||||||||||
Status | Optional Value | ||||||||||||
Type | String | ||||||||||||
Details | need details. | ||||||||||||
. | |||||||||||||
Parm 6: initType |
|||||||||||||
Purpose | Address of page to initialize and load in the event of a single page request. | ||||||||||||
Status | Optional Value | ||||||||||||
Type | Integer | ||||||||||||
Details | See init() script parm 5 for specifications. | ||||||||||||
. | |||||||||||||
Parm 7: todoitQpageGroupOverride |
|||||||||||||
Purpose | An imprecise classification of the group of pages to which the page belongs. | ||||||||||||
Status | Optional | ||||||||||||
Type | String | ||||||||||||
Details | See todoitQ1() script parm 9 for specifications. | ||||||||||||
. | |||||||||||||
Parm 8: todoitQPageTitleOverride |
|||||||||||||
Purpose | The title of the page. | ||||||||||||
Status | Optional | ||||||||||||
Type | String | ||||||||||||
Details | See todoitQ1() script parm 10 for specifications. | ||||||||||||
. | |||||||||||||
Parm 9: todoitQPageFuncOverride |
|||||||||||||
Purpose | A broad classification as to the function of the page. | ||||||||||||
Status | Optional | ||||||||||||
Type | String | ||||||||||||
Details | See todoitQ1() script parm 11 for specifications. | ||||||||||||
. | |||||||||||||
Parm 10: todoitQPageLevelOverride |
|||||||||||||
Purpose | An imprecise classification as to the complexity of the page. | ||||||||||||
Status | Optional | ||||||||||||
Type | Integer | ||||||||||||
Details | See todoitQ1() script parm 12 for specifications. | ||||||||||||
. | |||||||||||||
Parm 11: todoitQPageIconOverride |
|||||||||||||
Purpose | An icon to display after the hyperlink is displayed. | ||||||||||||
Status | Optional | ||||||||||||
Type | Icons | ||||||||||||
Details | See todoitQ1() script parm 13 for specifications. | ||||||||||||
. | |||||||||||||
Parm 12: todoitQPageIconAltOverride |
|||||||||||||
Purpose | alt text to display when one mouseovers todoitQPageIcon parm 7 above. | ||||||||||||
Status | Optional | ||||||||||||
Type | Text | ||||||||||||
Details | See todoitQ1() script parm 14 for specifications. | ||||||||||||
. | |||||||||||||
Parm 13: debug |
|||||||||||||
Purpose |
For debugging the initial integration of a page into the |
||||||||||||
Status | Optional | ||||||||||||
Type | Integer | ||||||||||||
Details | See todoitQ1() script parm 15 for specifications. | ||||||||||||
. | |||||||||||||
Parm 14: iam |
|||||||||||||
Purpose |
For debugging the initial integration of a page into the |
||||||||||||
Status | Optional | ||||||||||||
Type | String | ||||||||||||
Details | See init() script parm 16 for specifications. | ||||||||||||
. | |||||||||||||
End | |||||||||||||
FOOTNOTE |
Scripts Required: todoitQ1()
todoitQ1 ( func , preTags , url , todoitQpageFrameOverride , click , mouse , textOrImage1 , textOrImage2 , todoitQpageGroupOverride , todoitQpageTitleOverride , todoitQpageFuncOverride , todoitQpageLevelOverride , todoitQpageIconOverride , todoitQpageIconAltOverride , debug , caller ); |
||||||||||||||
. | ||||||||||||||
Parm 1: func |
||||||||||||||
Purpose | Function to be performed. | |||||||||||||
Status | Optional Value | |||||||||||||
Type | String | |||||||||||||
Format | Specific | |||||||||||||
Values | Action | |||||||||||||
Default | null | Perform standard queing and spawning. | ||||||||||||
Values | End | |||||||||||||
Discuss | At this time there is only one value, null, which specifies to do a standard queing and spawning. | |||||||||||||
Note | The parameter was created to provide for future expansion. For now, spec null. | |||||||||||||
. | ||||||||||||||
Parm 2: preTags |
||||||||||||||
Purpose | Text to be placed immediately before any HTML code generated. | |||||||||||||
Status | Optional Value | |||||||||||||
Type | String | |||||||||||||
Format | Free | HTML compatible text. | ||||||||||||
Default | null | Do nothing extra. | ||||||||||||
Discuss |
For full integration of a page into the These script references are invisible to the user, except for the improved user experience afforded him through the queueing and spawning functionalities. But it is conceivable, with numerous browsers each with numerous versions, collectively countless bugs and idiosyncrasies, that the script tag pair itself ( < script > .. < /script > ) might interfere. The preTags parm is a precautionary parm created to hopefully circumvent any such problems should they arise, by taking text (including HTML tags) which was immediately before the original hyperlink reference, but which is now separated by the script tag, and by passing it as a parameter, allow todoitQ1() to place said text immediately in front of the hyperlink reference it generates. |
|||||||||||||
Note |
To date, we have not needed to use this parm. If you find a need for it, please notify us, so that we may update these instructions for the benefit of all |
|||||||||||||
. | ||||||||||||||
Parm 3: url |
||||||||||||||
Purpose | url to load. | |||||||||||||
Status | Otional | |||||||||||||
Type | String | |||||||||||||
Format | page-relative address | |||||||||||||
Form 1 | relative url | |||||||||||||
Descript | For specifying the url that would have been the url in the hyperlink replaced bytodoitQ1(). | |||||||||||||
Eg 1 real | ||||||||||||||
Standard Render | This anecdote, and it's attendant discussion, may provide some illumination. Snail mail version of eMail clutter. | |||||||||||||
Standard Code | This anecdote, and it's attendant discussion, may provide some illumination. < a href="../all/all_all__K(tm)_anecdote_snail-mail_clutter.html" target="f=main_adm" >Snail mail version of eMail clutter.< /a > | |||||||||||||
todoitQ1() code |
This anecdote, and it's attendant discussion, may provide some illumination.
< script >todoitQ1("","", "../all/all_all__K(tm)_anecdote_snail-mail_clutter.html" ,"", 1,1, "Snail mail version of eMail clutter","","","","K(tm)",3,"~","Deadend",0,iam);< /script > |
|||||||||||||
todoitQ1() Render |
This anecdote, and it's attendant discussion, may provide some illumination.
Snail mail version of eMail clutter.
|
|||||||||||||
Discuss |
The todoitQ1() script (along with the todoitQ2() script) provides the interface to the The reason the size of the code is about twice as large as the standard code, is because there is a lot more going on. In fact, the todoitQ1() script does more than twice as much in about the same amount of code. Draw your attention to the 1,1, specs. This is the click and mouse parm pair. These will be discussed completely in due course, below, but here notice that these four characters allow one to turn on or off independently the hyperlink for either clicking our mouseovering. In fact, the standard HTML onmouseover which activates mouseover functionality, doesn't even directly accept a URL. it requires a script, which one must write, to which one must pass another copy of the URL (requiring more characters and fodder for typos), which must then do a window.open or window.location (to execute the equivalent href). Furthermore, one must again specify the destination frame, since the href and the mouseover components of the HTML a tag appear to be unconnected. |
|||||||||||||
Form 2 | null | |||||||||||||
Descript | For reloading page on user click.. | |||||||||||||
Eg 1 | < script> todoitQ1( "", "", "" ); < /script> | |||||||||||||
Discuss | Spec a null( "" ) value for url, instructs todoitQ2() script to create a reference to the same page, which upon user click (but not mouseover) reloads the page. | |||||||||||||
Form 3 | void | |||||||||||||
Descript | For display of the current directory on user click as per href="" conventions. | |||||||||||||
Eg 1 | < script> todoitQ1( "", "" ); < /script> | |||||||||||||
Discuss | Omitting url instructs todoitQ2() script to create a null( "" ) href reference, which upon user click (but not mouseover) displays directory in which page is located. | |||||||||||||
Note |
Said reference does not pass thru This can only be accomplished by omitting the url parm which implies all subsequent parms must also be omitted. If you spec null( "" ) instead, you would be utilizing form 2 above which reloads the page. Therefore any instructions you would issue must be done before or after the todoitQ2() script reference, not within textOrImage1 or textOrImage2 which don't exist. |
|||||||||||||
. | ||||||||||||||
Parm 4: todoitQpageFrameOverride |
||||||||||||||
Purpose | Frame into which url is to be loaded. | |||||||||||||
Function ality |
Override todoitQ2() script todoitQpageFrameOverride parm 2, which itself overrides initLoadYYMMDD() script initFrame parm 3 (or init() script initToFrame parm 2). | |||||||||||||
Status | Optional | |||||||||||||
Type | String | |||||||||||||
Format | frame name | |||||||||||||
Form | Case-sensitive alphanumeric( a-z , A-Z , 0-9 ), dash( - ), and underscore( _ ) | |||||||||||||
Descript | The todoitQpageFrameOverride overrides todoitQ2() script todoitQpageFrameOverride parm 2, which itself overrides initLoadYYMMDD() script initFrame parm 3 (or init() script initToFrame parm 2), these last two(2) being the default single page request frame specification into which the url is to be loaded. | |||||||||||||
Default | null | Do not override todoitQ2() setting of same name. | ||||||||||||
Discuss |
To understand the default sequence overrides of the frame into which a url is to be loaded, we start with the single page request, the static situation. In a single page request, However, in a dynamic situation whereby a user has activated a link at your website, the todoitQ2() script, which is placed shortly after the init() group, takes over. One can thru it optionally specify the frame into which the page in which it is contained is to be loaded in this dynamic situation. The parm is of the same name as the parm in this script, namely todoitQpageFrameOverride. This script todoitq1() then uses that override if specified (otherwise uses the init() spec) unless this parm todoitQpageFrameOverride is spec. So, this todoitQpageFrameOverride overrides any of the prior thus allowing you to control, at the actual point of reference, the frame into which the page should be loaded. But note that this also allows you to conveniently default to a standard dynamic context which you have pre-defined by todoitQ2() script, or if not, allows you to default to the static context which you have also pre-defined by the init() group. |
|||||||||||||
Eg 1 | A common usage. | |||||||||||||
Standard Render | This would be a common usage. | |||||||||||||
Standard Code | This would be a < a href= "pageInSameDir.html" target="f=main_adm" >common < /a > usage. | |||||||||||||
todoitQ1() code |
This would be a
< script >todoitQ1("","","pageInSameDir.html", "", 1,1,"common");< /script > usage. |
|||||||||||||
todoitQ1() Render | This would be a common usage. | |||||||||||||
Discuss |
In the case of a more common reference, whereby a page is simply linking to another, possibly the next, one can see that the code required is nearly as simple as a standard hyperlink, but still retains the richness of easy specification of click or mouseover. In this example, we have defaulted the frame or target, which keep in mind is not necessarily self as would be with a standard hyperlink. See discussion of defaults, above. |
|||||||||||||
. | ||||||||||||||
Parm 5: click |
||||||||||||||
Purpose | Perform the hyperlink on a user click. | |||||||||||||
Status | Optional | |||||||||||||
Type | Integer | |||||||||||||
Format | Specific | |||||||||||||
Values | Action | |||||||||||||
0 | Do not perform hyperlink on click. | |||||||||||||
Default | 1 | Perform hyperlink on click. | ||||||||||||
Values | End | |||||||||||||
Discuss |
Setting to 1 performs a standard hyperlink reference on click. Setting to 0 deactivates the onclick functionality. One might want a hyperlink to be inactive for a number of reasons. First, the page to which it refers bay not yet exist or may be in limbo. Second, some functionality is based upon settings and buttons that have been set, pushed and clicked. The specific functionality activated by said link may be in the off or deactivated mode. Used in combination with mouse parm 6 to achieve desired result. |
|||||||||||||
Note |
The default is 1, thus on. Thus allowing one to skip the parm entirely if none thereafter are required. Eventually, there shall be options for this in user preferences, settings and controls. But if this parm is defaulted, that means that there are no parms after it either which includes mouse parm 6. So because click parm 5 and mouse parm 6 work together, their default void functionalities are discussed together here. |
|||||||||||||
Defaults | Discuss | Briefly, one sentence per permutation: If neither is defaulted that is not pertinent to this discussion. If only mouse is defaulted, we set to 0, since it follows click which is not defaulted, had you wanted it on, you would have specified it so. It is not possible to have a default followed by no default. If both are in default, we make a judgement call and turn them both on; Eventually, there shall be options for this in user preferences, settings and controls. | ||||||||||||
Default Permute |
click | mouse | Action | |||||||||||
No | No | n/a | ||||||||||||
No | Default | Set mouse to 0 | ||||||||||||
Default | No | Impossible. Parms can't follow a void. | ||||||||||||
Default | Default | Set both click and mouse to 1 | ||||||||||||
. | ||||||||||||||
Parm 6: mouse |
||||||||||||||
Purpose | Perform the hyperlink on a user mouseover. | |||||||||||||
Status | Optional | |||||||||||||
Type | Integer | |||||||||||||
Format | Specific | |||||||||||||
Values | Action | |||||||||||||
0 | Do not perform hyperlink on mouseover. | |||||||||||||
1 | Perform hyperlink on mouseover. | |||||||||||||
Values | End | |||||||||||||
Discuss |
Setting to 1 performs a standard hyperlink reference on mouseover. Setting to 0 deactivates the onmouseover functionality. onmouseover can be an extremely power feature. It is possible to perform actions in the entire range from updating a value to loading and entire group of pages simply by having the user place the mouse over the hyperlink area. By the term place we simply mean that the mouse has arrived. And, there are numerous other on events of HTML, such as onentry, onexit, which we intend to utilize for either enhancement or fine tuning. Notice also we say, area. Said area includes images just like standard onclick functionality does when one uses parms textOrImage1 parm 7 &textOrImage2 parm 8 for incorporating images into the reference, just as one normally does with standard hyperlinks and the img tag. This allows the These symbols are images of characters, not the characters themselves. Therefore we shall be able to refine them and have subtle variations upon them as time passes. These shall be discussed in detail at todoitQpageIconOverride parm 13& todoitQpageIconAltOverride parm 14. Of course, sometime the onmouseover can be an annoyance or disaster if pages are loading left and right upon one another! Discretion is often in order. Used in combination with click parm 5 to achieve desired results. |
|||||||||||||
Defaults | Note | The default depends upon click parm 5. Because click parm 5 and mouse parm 6 work together, their default void functionalities are discussed together at click parm 5 defaults discussion above. | ||||||||||||
. | ||||||||||||||
Parm 7: textOrImage1 |
||||||||||||||
Purpose | Text or image portion of a hyperlink upon which a user clicks or mouseovers. | |||||||||||||
Status | Optional | |||||||||||||
Type | String | |||||||||||||
Format | Free | |||||||||||||
Discuss |
Because textOrImage1 and textOrImage2 work together, their functionalities are discussed together here. textOrImage1 is generally the text portion of a hyperlink upon which a user clicks, including HTML tags that would normally be permitted. textOrImage2 is generally the image portion of a hyperlink upon which a user traditionally may or may not be permitted to click, including HTML tags that would normally be permitted. The reason two fields are provided is because todoitQ1() was not designed with the intention of replacing the standard hyperlink. It was designed with the intention of providing the queuing and spawning capabilities of which we often speak. To do so, due actually to vast limitations on the flexibility of specification, it was necessary to replace the direct hyperlink reference. So it's a matter of cause and effect, not direct intent. The standard HTML hyperlink as it is created does have tremendous flexibility regarding text and image intermingling however. So in order to avoid erecting inadvertent barriers or impediments to these flexibilities, we saw fit to include two parameters which work together as follows: In the permutations next, we shall refer to the |
|||||||||||||
Permute |
TOI 1 Spec |
TOI 2 Spec |
||||||||||||
No | No |
No direct hyperlink is generated. But |
||||||||||||
No | Yes |
A hyperlink is generated using textOrImage2, followed by |
||||||||||||
Yes | No |
A hyperlink is generated using textOrImage1, followed by |
||||||||||||
Yes | Yes | t
A hyperlink is generated using textOrImage1, followed by |
||||||||||||
Defaults | Discuss |
Because textOrImage1 and textOrImage2 work together, their defaults are discussed together here. Sometimes, with a just a little bit of creativity one can with simplicity and ease introduce very useful functionality. Of course, one must always be aware of arrogance which is blindsitghing. Such as for example earlier versions of Android which insist upon placing a blank before and after everything one pastes with no option to suppress it. A functionality which requires at least 4 times as much effort per event to get rid of the undesired blanks than it takes to simply tap the spacebar when desired. In such cases, a so-called functionality becomes a massive burden. That is why eventually, there shall be options for this in user preferences, settings and controls. Now, in the situation where neither textOrImage1 nor textOrImage2 are spec, there would be no reason to generate a hyperlink, because there is nothing to link. But there is a common expression: click here. So, if neither textOrImage1 nor textOrImage2 is spec and click is on either by spec or default, then textOrImage1 is set to click here. But if only mouse is on then textOrImage1 is set to mouseover here. |
||||||||||||
Default Permute |
Click | Mouse |
Set textOrImage1 To |
|||||||||||
No | No | n/a | ||||||||||||
No | Yes | mouseover here | ||||||||||||
Yes | No | click here | ||||||||||||
Yes | Yes | click here | ||||||||||||
. | ||||||||||||||
Parm 8: textOrImage2 |
||||||||||||||
Purpose | Text or image portion of a hyperlink upon which a user clicks or mouseovers. | |||||||||||||
Status | Optional | |||||||||||||
Type | String | |||||||||||||
Format | Free | |||||||||||||
Discuss | Because textOrImage1 and textOrImage2 work together, their functionalities are discussed together at textOrImage1 parm 7 discussion above. | |||||||||||||
Defaults | Because textOrImage1 and textOrImage2 work together, their defaults are discussed together at textOrImage1 parm 7 defaults discussion above. | |||||||||||||
. | ||||||||||||||
In the following, though many of the parms discussed end with the suffix override, we often refer to them without this suffix, and it is to be understood that the meaning is the result after any and all applicable overrides have been applied.
The parms themselves are overrides if they end with the suffix override, but they are overrides to values that exist independently coming into the script even if the script does not have that particular override specified. The script then uses the resultant value, overridden or not. And to reiterate a common usage: The term spec means specified and unless the term spec null is used, spec non-null is intended. |
||||||||||||||
Parm 9: todoitQpageGroupOverride |
||||||||||||||
Purpose | An imprecise classification of the group of pages to which the page belongs. | |||||||||||||
Function ality |
Override todoitQ2() script todoitQpageGroupOverride parm 3, which itself overrides initLoadYYMMDD() script initPageGroup parm 7. | |||||||||||||
Status | Optional | |||||||||||||
Type | String | |||||||||||||
Format | Specific | Form 1 | initLoad YYMMDD() Form | Values As Indicated | ||||||||||
Values | Meaning | |||||||||||||
suite |
Pages pertaining to the integration of your subdomain into the |
|||||||||||||
map | Pages pertaining to a map of your subdomain and website as according to the common meaning of the word map. | |||||||||||||
about | Pages about your subdomain and website as according to the common meaning of the word about. | |||||||||||||
help | Pages pertaining to help at your subdomain and website as according to the common meaning of the word help. | |||||||||||||
user | Pages pertaining to users of your subdomain and website as according to the common meaning of the word user. | |||||||||||||
member | Pages pertaining to members of your subdomain and website as according to the common meaning of the word member. | |||||||||||||
content | Pages pertaining to content of your subdomain and website as according to the common meaning of the word content. | |||||||||||||
Values | End | |||||||||||||
Descript | The todoitQpageGroupOverride, form 1, with any of the specific values indicated above, overrides the specification of the same name of todoitQ2() script todoitQpageGroupOverride parm 3, which itself overrides initLoadYYMMDD() script initPageGroup parm 7, being the default single page request PageGroup. | |||||||||||||
Discuss |
The pageGroup, form 1 is a loose classification of a page according to a fairly broad but sometimes contextually specific interpretation and intent as to the page's general functionality. Indeed, one of the reasons we designed todoitQ2() script to override initLoadYYMMDD() script and todoitQ1() script override todoitQ2() script is because some pages can pertain to more than one group, depending upon context. This parameter allows one to make the proper specification. But Finally, one need only respect these settings for the higher levels again, for uniformity, but once your pages have reached the lower level of content, you can override the |
|||||||||||||
Default | null | Do not override todoitQ2() setting of same name parm 3. | ||||||||||||
Default In Q2() |
null | Do not override initPageGroup parm 7. | ||||||||||||
Default In Init() |
There is no default, because one should make a decision in order to facilitate our efforts for uniform user experience regarding the higher level pages. But not to worry, if you fail to specify it at that time, an alert will be issued itemizing your choices. If you can't decide, its most likely because you are into your own content, so so simply specify content, which is |
|||||||||||||
Form 2 | initFrame YYMMDD() Form | Values Beginning With group | ||||||||||||
Values | Meaning | Propagate | ||||||||||||
groupSpr | single page request group | groupSprAll | ||||||||||||
groupDc | dynamic common group | Yes | ||||||||||||
groupDs | dynamic specific group | No | ||||||||||||
groupDsname | dynamic specific arbitrary group | Yes | ||||||||||||
groupname | any arbitrary group | Yes | ||||||||||||
Values | End | |||||||||||||
Descript | The todoitQpageGroupOverride, form 2 overrides the specification of the same name of todoitQ2() script todoitQpageGroupOverride parm 3. But todoitQ2() does not override initLoadYYMMDD() script initPageGroup parm 7, because initLoadYYMMDD() is a form 1 spec, being the default single page request PageGroup. | |||||||||||||
Discuss |
The pageGroup form 2 is a precise classification of a page according to a fairly strict interpretation and intent as to the page's inclusion in the group. pageGroup form 1 begins in initLoadYYMMDD(), passes thru todoitQ2(), and receives it's final value here in todoitQ1(). pageGroup form 2 begins in initFrameYYMMDD(), passes thru todoitQ2(), and receives it's final value here in todoitQ1(). |
|||||||||||||
Note | Since both pageGroup form 1 and pageGroup form 2 utilize the same parameter fields, there is a theoretical possibility of a conflict in specifications, but since form 1 is not yet fully implemented, we do not know. But let us continue with the discussion. | |||||||||||||
Thorough Discuss
The
three(3) contexts that can exist at any time for any web page |
The purpose of pageGroup form 2 is to facilitate group loading of pages. And, there are at least three(3) contexts which progress from the first thru the third and can produce any number of complex intertwined scenarios. A thorough discussion has been presented earlier in our definition of the term on thru the analysis and our bullfrog discussion, ending with its own summary, all being quite lengthy but, as said, thorough. | |||||||||||||
Concise Discuss
The
three(3) contexts that can exist at any time for any web page |
The purpose of pageGroup form 2 is to facilitate group loading of pages. And, there are at least three(3) contexts which progress from the first thru the third and can produce any number of complex intertwined scenarios. The three(3) contexts are as follows. Single Page Request context Dynamic Common context Dynamic Specific context |
|||||||||||||
Concise Discuss
single
page request context |
It begins with the single page request context. A user has entered the website/subdomain, usually thru a search engine or book mark reference, but even a direct reference to the website itself produces the initial single page request for index.html, or something similar. In this initial context, one needs to establish the website itself. The framing, the backgrounds, the motif, the entire ambiance. To do this, initLoadYYMMDD() loads the initial frameset but it needs to know which framset, etc, to load. This is all specified in the initLoadYYMMDD() specs of the page that is the subject of this initial single page request. In these specs should contain all the information required to layout what one wants the user to see upon entering the website. Bear in mind that the page referenced may be some innocuous insignificant page, so the initial presentation is not based solely upon what is the page in question, but, again, what is desired to present to the user when he has referenced the page in question. Each page has it's own single page request context and the To reiterate, upon a single page request you may desire to move a significant page from where it is usually resented to a different frame to present a silghtly different view than would normally occur. Or, you may desire to totally replace an insignificant page with more important, "This is who we are, thanks for visiting" - type pages. You may want to display personal or business references, or credentials. |
|||||||||||||
Concise Discuss
Dynamic
Common context |
The single page request context discussed above is static for any given page. Everyone has entered from outside. But, once the user has entered the website/subdomain, it is a dynamic situation. But there are two(2) types of dynamic situations, towit: the common, and the specific. Here we shall discuss the dynamic common. The dynamic common context concerns things that are common to a given page under just about all dynamic contexts or situations. Footnotes, citations, definitions, or even introductory information or images. That is, introductory to the page itself. Introduction to the website is covered under the single page request context. So when the page is loaded, it's dynamic common context, it's supporting documents, are automatically loaded. |
|||||||||||||
Concise Discuss
Dynamic
Specific context |
The single page request context discussed above is static for any given page. Everyone has entered from outside. But, once the user has entered the website/subdomain, it is a dynamic situation. But there are two(2) types of dynamic situations, towit: the common, and the specific. Here we shall discuss the dynamic specific. The dynamic specific context concerns things that are specific to a given page in a specific dynamic context or situation. It can not be determined a priori, but rather, must be ascertained at the point of the hyperlink reference. That location defines with certainty the specific dynamic situation. It could be a sort of intellectual drilling down process. At any specific point, you may want to do more than just load a page. You may want to change the appearance of the display, either subtly, or dramatically. So when the page is loaded, it's dynamic specific context, it's total ambiance is automatically loaded. We have however, broken the dynamic specific context into three(3) classes of groups for the purpose of propagation to be discussed next, towit: groupDs groupDsname groupname |
|||||||||||||
Propagation |
||||||||||||||
When a page is loaded that has pageGroup form 2 specs that requires another page be loaded, that other next page may also have pageGroup form 2 specs of it's own. Whether or not to honor those specs is the form of propagation with which we are here concerned. | ||||||||||||||
Values | Analysis | Propagate | ||||||||||||
groupSpr | single page request group | groupSprAll | ||||||||||||
Propagate |
The single page request group can be defined for any page, but the specs apply really only to itself, ie., it's single page request context. Therefore it is contradictory to propagate forward from groupSpr. However, it still seems possible that there might be specific instances where one might want to do something like that. So we propagate forward the groupSprAll. And, any spec having groupSprAll shall be honored. |
|||||||||||||
groupDc | dynamic common group | Yes | ||||||||||||
Propagate |
The dynamic common group is concerned with pages that are need for support so to speak. Therefore it makes sense to propagate forward from groupDc. However, it still seems possible that there might be specific instances where one might want to not do something like that. So we propagate forward the groupDc. But, if any conflicts arise, spec groupDc~ in this todoitQ1() script todoitQpageGroupOverride parm 9 to cancel this propagation. Ie., groupDc followed by the tildi( ~ ). |
|||||||||||||
groupDs | dynamic specific group | No | ||||||||||||
Propagate |
The dynamic specific group is concerned with specific contexts, but the group name itself is general. It is a quicky name so that for a given page one may spec a group of specific pages. Therefore all manor of chaos may ensue by propagating forward from groupDs. So we do not propagate forward the groupDs. But, if any unnecessary omissions arise, spec groupDs! in this todoitQ1() script todoitQpageGroupOverride parm 9 to continue this propagation. Ie., groupDs followed by the exclaim( ! ). |
|||||||||||||
groupDsname | dynamic specific arbitrary group | Yes | ||||||||||||
Propagate |
The dynamic specific arbitrary group is concerned with specific contexts, and the group name itself is specific. Therefore it makes sense to propagate forward from groupDsname. So we propagate forward the groupDsname. But, if any conflicts arise, spec groupDsname~ in this todoitQ1() script todoitQpageGroupOverride parm 9 to cancel this propagation. Ie., groupDsname followed by the tildi( ~ ). |
|||||||||||||
groupname | any arbitrary group | Yes | ||||||||||||
Propagate |
The any arbitrary group is concerned with specific contexts, and the group name itself is specific. Therefore it makes sense to propagate forward from groupname. So we propagate forward the groupname. But, if any conflicts arise, spec groupname~ in this todoitQ1() script todoitQpageGroupOverride parm 9 to cancel this propagation. Ie., groupname followed by the tildi( ~ ). |
|||||||||||||
Values | End | |||||||||||||
Default | null | Form 2 has no default. So a spec of null is interpreted as a form 1 default, towit: Do not override todoitQ2() setting of same name parm 3. | ||||||||||||
. | ||||||||||||||
Parm 10: todoitQPageTitleOverride |
||||||||||||||
Purpose | The title of the page. | |||||||||||||
Function ality |
Override todoitQ2() script todoitQPageTitleOverride parm 4, which itself overrides initLoadYYMMDD() script initPageTitle parm 8. | |||||||||||||
Status | Optional | |||||||||||||
Type | String | |||||||||||||
Format | Free | |||||||||||||
Form | Case-sensitive alphanumeric( a-z , A-Z , 0-9 ), dash( - ), and underscore( _ ). | |||||||||||||
Descript | The todoitQ2() script todoitQPageTitleOverride parm 4, which itself overrides initLoadYYMMDD() script initPageTitle parm 8, being the default single page request PageTitle. | |||||||||||||
Discuss |
The PageTitle is your chosen title of the page | |||||||||||||
Note |
The But if our display of the PageTitle in our standard pager header conflicts with your style or motif, continue to spec the title, but terminate the PageTitle with a tildi( ~ ) to disable it's display. Ie., PageTitle followed by the tildi( ~ ), thus: PageTitle~. The
This is only for content pages over which
|
|||||||||||||
Default | null | Do not override todoitQ2() setting of same name parm 4. | ||||||||||||
Default In Q2() |
null | Do not override initPageTitle parm 8. | ||||||||||||
Default In Init() |
Null. But, you should decide upon a title for said page based on your own naming conventions. | |||||||||||||
. | ||||||||||||||
Parm 11: todoitQPageFuncOverride |
||||||||||||||
Purpose | A broad classification as to the function of the page. | |||||||||||||
Function ality |
Override todoitQ2() script todoitQPageFuncOverride parm 5, which itself overrides initLoadYYMMDD() script initPageFunc parm 9. | |||||||||||||
Status | Optional | |||||||||||||
Type | String | |||||||||||||
Format | Specific | |||||||||||||
Values | Meaning | For examples, click the eg. in the catagory. | ||||||||||||
Direct Reference (External Or Internal) Page Types. |
These are pages with special addressing requirements according to the format of the address as specified in the individual catagory listed. | |||||||||||||
http |
A page either outside or within the |
|||||||||||||
domain |
A page within the |
|||||||||||||
|
All the normal pages that concern one in the creation of his website. | |||||||||||||
controls | A page containing primarily controls, widgets, tools, buttons, and gadgets. eg. | |||||||||||||
func | A page performing primarily system or support functions, such as accounting, logging in, signing up (but not forms). These pages are often viewed by users, but individual ones might never be viewed by users or may never be viewed by anyone if they load in background frames. But they still need a common theme. | |||||||||||||
menu | A top level menu very often having general introductions, and often leading to submenus next, Need eg. | |||||||||||||
submenu | A submenu, usually more concise and sometimes long by count, sprouting from a menu prior, Need eg. | |||||||||||||
intro | An introduction to a section, subsection, topic, or just about anything often sprouting from a menu or submenu, and often leading to detail next, eg. | |||||||||||||
detail | A detailed presentation following an introductionprior, but still not being actual content though it most likely leads to content below, eg. this page. | |||||||||||||
form | An html or other form, often sprouting from a menu, submenu, introduction, or detail above, Need eg. | |||||||||||||
content | Your work product, your intellectual creations, eg. | |||||||||||||
promo | Not quite an advertisement, but your own promotion of some form such as a synopsis of a book, announcement of an upcoming event, or a soon to be added subsection to your subdomain and website, eg. | |||||||||||||
K(tm) |
A footnote, paragraph, diversion, anecdote, support, or ancillary document, sprouting from anywhere, and often but not necessarily destined for If K(tm) is spec, then K(tm) will be displayed at the tail of the hyperlink as a convenient indicator for the user, thus: An example If additionally, todoitQPageLevel parm 12 after application is spec and greater than or equal to the value 2, then todoitQPageLevel is displayed immediately after the K(tm), other wise it is omitted to avoid clutter, thus: An example If additionally, todoitQPageIcon parm 13 after application is spec and is deadend( ~ ), or spawn_over_self( ~~ ), then whichever is displayed immediately thereafter, thus: An example An example If finally, todoitQPageIcon parm 13 after application is spec and is inf( ? ), imp( ! ), or ref( * ), then whichever is displayed at the tail of the hyperlink, but K(tm) and todoitQPageLevel are suppressed, again to avoid clutter, thus: An example An example An example Note: Our spawn_over_self( ) is preliminary. |
|||||||||||||
K(tm)_notice | A notice or notification to a user or customer, eg. | |||||||||||||
All External Advertizements. |
Pages in which neither |
|||||||||||||
ads1 | Highest quality external advertisements. | |||||||||||||
ads2 | Secondary quality external advertisements. | |||||||||||||
adsExternal | Miscl external advertisements. | |||||||||||||
Values | End | |||||||||||||
Descript | The todoitQ2() script todoitQPageFuncOverride parm 5, which itself overrides initLoadYYMMDD() script initPageFunc parm 9, being the default single page request PageFunc. | |||||||||||||
Discuss |
The pageFunc is difficult to quantify, because it's not based strictly upon functionality. There are three(3) groups, though it is not important to remember them.
Just select from the above values.
We're simply explaining it here so you won't wonder why we have such an unusual collection, so won't give many details. Clarifications are given in the itemization where necessary, not in this general discussion. For examples, click the eg. in the value meaning. The first group deals with special requirements for addressing,. This includes http and domain. The second group deals with The third and final group deals once again with addressing concerns. This includes all the external advertisements. Pages who's content neither Although upon first observation these three groups appear disparate, Upon closer examination one can see a gradient which extends from the very first to the very last. |
|||||||||||||
Default | null | Do not override todoitQ2() setting of same name parm 5. | ||||||||||||
Default In Q2() |
null | Do not override initPageFunc parm 9. | ||||||||||||
Default In Init() |
Null. But, you must decide upon a func in init() for said page so that |
|||||||||||||
. | ||||||||||||||
Parm 12: todoitQPageLevelOverride |
||||||||||||||
Purpose | An imprecise classification as to the complexity of the page. | |||||||||||||
Function ality |
Override todoitQ2() script todoitQPageLevelOverride parm 6, which itself overrides initLoadYYMMDD() script initPageFunc parm 10. | |||||||||||||
Status | Optional | |||||||||||||
Type | Integer | |||||||||||||
Format | Specific | |||||||||||||
Values | Meaning | |||||||||||||
Default | 1 | A sentence or short paragraph. | ||||||||||||
2 | A #1 followed by brief analysis. | |||||||||||||
3 | A a more comprehensive yet still concise analysis. | |||||||||||||
4 | A a lengthy analysis can go anywhere intellectually. | |||||||||||||
Values | End | |||||||||||||
Discuss |
A pageLevel is a simple indication of the level of complexity of a page which is a diversion from the topic under discussion. It's purpose is not to weed out the lesser intellects, which is arrogant, but rather to advise any user in some quick blink of the eye as to how much time it might take to go on this diversion. So, the boundaries between these values are not precise nor are they critical. The pageLevel appears after any Simply specify an approximate level from the values shown above for the convenience of our mutual users. |
|||||||||||||
Note | The default is 1, and a value of 0 or null is set to this default. But to avoid clutter, 1 is never displayed. Only 2 or greater are displayed. | |||||||||||||
. | ||||||||||||||
Parm 13: todoitQPageIconOverride |
||||||||||||||
Purpose | An icon to display after the hyperlink is displayed. | |||||||||||||
Function ality |
Override todoitQ2() script todoitQPageIconOverride parm 7, which itself overrides initLoadYYMMDD() script initPageIcon parm 11. | |||||||||||||
Status | Optional | |||||||||||||
Type | Icons | |||||||||||||
Format | Specific | Characters | ||||||||||||
Values | Meaning | |||||||||||||
? | A link to information about or why. | |||||||||||||
! | A link to important or critical information about or why. | |||||||||||||
* | A footnote, which we refer to as ref( * ). | |||||||||||||
~ | A deadend link from which you can easily return. | |||||||||||||
~~ | A spawn_over_self page which clobbers current page. | |||||||||||||
Values | End | |||||||||||||
Note |
In the following, though many of the parms discussed end with the suffix override, we often refer to them without this suffix, and it is to be understood that the meaning is the result after any and all applicable overrides have been applied. And to reiterate a common usage: The term spec means specified and unless the term spec null is used, spec non-null is intended. |
|||||||||||||
Values | Discuss | |||||||||||||
Value | ? | Usage | ||||||||||||
If todoitQPageIcon parm 13 is spec as the inf( ? ), then the inf( ? ) shall be displayed, visually-after todoitQPageTextOrImage1 parm 7 if spec, and before todoitQPageTextOrImage2 parm 8 if spec. If inf( ? ) is displayed, it is always hyperlinked to url parm 3 if spec. If todoitQPageIconAlt parm 14 is spec, it is displayed at the point of mouseover if inf( ? ) is mouseovered. | ||||||||||||||
Analysis | ||||||||||||||
inf( ? ) is displayed whenever logically possible and hyperlinked whenever logically possible. If url is present, inf( ? ) is linked to it as well as any textOrImage if present. In this case, it does not matter whether one
clicks/mouseovers the textOrImage or clicks/mouseovers inf( ? ) since they both link to the same url, so inf( ? ) serves as a flag to draw attention to the url. However, if neither textOrImage1 nor textOrImage2 exist, then inf( ? ) is still linked to url. So accessing inf( ? ) will result in a hyperlink action to url. In other words, by utilizing a separate todoitQ1() script placement, with no text or images, one can generate a help page link from the stand alone inf( ? ). And further, by utilizing two(2) todoitQ1() script placements, one with text or images the other without, one can generate a standard hyperlink reference to, let us say, some functionality, and a seperate info link to explain or describe this functionality. If the first usage is text, such as a standard hyperlink, the second can be your description or summary regarding, thus: This tool allows one to quickly ... In the above, place your mouse over the inf( ? ) image to see how the todoitQPageIconAltparm 14 can be used for additional, simple, information. If the first usage is an image, such as a button, the second can be your description or instructions for utilization, thus: In the above, place your mouse over each of the two(2) images to see how the todoitQPageIconAltparm 14 can be used for additional, simple, information. One can spec:
todoitQClick parm 5 1 on, todoitQMouse parm 6 0 off for tools
todoitQClick parm 5 0 off, todoitQMouse parm 6 1 on for info In this way, the user can simply flick his mouse over to the pair of icons and the tools info will immediately pop up where ever you spec, without the tools being inadvertently activated. | ||||||||||||||
Note |
One can link to specific locations within pages. The technique is to first define a location in the page, using html at the location, thus: < a name=" local_spot ">optional text< /a> then reference it by name as the URL in a link, thus: infoPage.html# local_spot In the above, we used spaces( ) for visual display and clarity. In actual usage spaces( ) will cause problems. Be sure to scruntch them out (except for a name). |
|||||||||||||
Discuss | ||||||||||||||
By utilizing either one or two todoitQ1() script placements, as concisely indicated in analysis immediately above, one respectfully provides our customers with the information they need for proper and informed utilization of the functionality, without their need to go look for it. And think about it, who would know better than we or you, what specific information they need, and precisely on what page it is located, to achieve this enlightenment. From this perspective, one can see that it is barbaric to require that the user go looking for help. This inf( ? ) icon is perhaps the most important of all our icons to date. It's intent and purpose is to link a user directly to an answer to at least one question that logically exists at the point of placement. We say at least one because it is naive to assume that the question that one perceives is the only question, or the only important question, at that point where the icon is placed. That would be where the other 327 best results come in (in our important discussion example below concerning requiring the user to search).
However note that is is not intended to take a user to the help section, or link a user to a help page with a search box requireing that he then search for the issue from which he just came.
If you want to link to a general help section, use todoitQPageTextOrImage1 parm 7 and spec Help as well, thus: Help
Otherwise take him to a context specific resolution.
Just don't make the user have to use a search box if he just came from the location that has all the context specific information that you know he will have to key in to maybe find the answer that you already know he is looking for because he clicked your link. Even if it is general information, he should not have to click your link to get to a search page and then have to search for general information. | ||||||||||||||
Value | ! | Usage | ||||||||||||
The imp( ! ) behaves in the same way as inf( ? ) above. | ||||||||||||||
Analysis | ||||||||||||||
Analysis for imp( ! ) is identical to that of inf( ? ) above. | ||||||||||||||
Discuss | ||||||||||||||
Utilization of the imp( ! ) icon is similar to that of the inf( ? ). But whereas inf( ? ) is used for a range of information all the way from general operation and functionality to simple user curiosity, the imp( ! ) is used for important or even critical information, thus affording immediate direct access to this critical information. By utilizing either one or two todoitQ1() script placements, as concisely indicated in inf( ? ) analysis above, one respectfully provides our customers with the information they need for proper and informed utilization of the functionality, without their need to go look for it. If the first usage is an image, such as a button, the second can be your description or instructions for utilization including caveats. And You, the However, due to the usefullness of this icon, it is a good idea to be ever cognizant of places where it, or its lesser inf( ? ) should be utilized. Also, in your development you may come across situations and circumstances that we have not discussed. We would appreciate any correspondence regarding these important issues. | ||||||||||||||
Value | * | Usage | ||||||||||||
The ref( * ) behaves in the same way as inf( ? ) above. | ||||||||||||||
Analysis | ||||||||||||||
Although the behavior of ref( * ) is identical to that of inf( ? ) and imp( ! ) above, (eg, it suppresses But the point is that the ref( * ) can be used just about anywhere to indicate a small, footnote type diversion which you pop up in And further, by utilizing two(2) todoitQ1() script placements, one with text or images the other without, one can generate a standard hyperlink reference and a seperate refor footnote link to explain or describe this link, which HTML has no provision for! If the first usage is text, such as a standard hyperlink, the second can be your description or summary regarding, thus: We were driving at a leisurely pace. In the above, place your mouse over the ref( * ) image to see how the todoitQPageIconAltparm 14 can be used for additional, simple, information, which we re-itterate, HTML does not have any provision for doing. With a standard html hyperlink the user has no idea what's out there, and you have no way to conveniently specify what is out there. And, you are already creating the hyperlink anyway. So the additional effort to spec ref( * ) and a couple extra words of text is nil compared to the service you can provide your user/customer that other web sites would have to go thru additional effort to attain. | ||||||||||||||
Discuss | ||||||||||||||
The reason we say small diversion is
because we'd prefer you utilize the By so doing, one simultaneously provides the user with useful information, just like ref( * ), and about the size of the diversion, and promotes | ||||||||||||||
Value | ~ | Usage | ||||||||||||
The deadend( ~ ) is displayed when ever spec and works with | ||||||||||||||
Analysis | ||||||||||||||
The deadend( ~ ) does not necessarily mean that the specific page is a deadend, but rather, that if one follow only deadend( ~ ), then he will eventually reach a deadend, not go in circles. From there he can use his back button without stumbling. Just because one can us a back button does not mean he can't get lost. Getting lost does not have to do with just backing up. It is knowing when to stop backing up. If the forward path criss-crosses over similar pages and phrases, when one starts backing up, he won't know where he is! It is thus a sort of green light. Eventually | ||||||||||||||
Discuss | ||||||||||||||
Of course, keep in mind that since you are spawning to alternate frames such as It is most appropriately utilized when the author you know ahead of time that this is a divergence and that the divergence has additional divergences, but that none of these are intertwined. An intertwined example: Describing the functionality of some tool or function which itself references countless others. But don't ignore using it simply because you are spawning to another frame. For, it may be useful in some other, later, reference to that page, possibly from the frame to which you are in this specific event spawning it. Again remember, the specification originates in initLoadYYMMDD() script and concerns the nature of the page. One need only spec in todoitQ2() script and here todoitQ1() script should it need to be changed. In fact, this particular parm should not need to be changed and the only compelling reason the parm exists here is so the order and number of parms does not get scrambled, so that you would then have to figure out, "Well, do I need to spec-null this parm in this script, or is it not in the list anyway?." But, at the risk of rambling, having said that, there are reasons why one might want to change this spec. It may be defined as deadend( ~ ) in initLoadYYMMDD() script but be imp( ! ) here. Just an example. | ||||||||||||||
Value | ~~ | Usage | ||||||||||||
The spawn_over_self( ~~ ), like deadend( ~ ), is displayed when ever spec and works with | ||||||||||||||
Analysis | ||||||||||||||
The spawn_over_self( ~~ ) is a companion to deadend( ~ ) and sort of opposite. It indicates to the user that this particular page containing the link he is about to click is going to be clobber by the page that he clicks to see. | ||||||||||||||
Discuss | ||||||||||||||
Now, this is an override situation. Any page, regardless of how it is defined in initLoadYYMMDD() script has the potential in a dynamic situation of clobbering the page referencing it. And in your specific context, you may have nowhere else to put it. So, in this script call, you politely warn the user with the spawn_over_self( ~~ ) icon. | ||||||||||||||
Values | Discuss End | |||||||||||||
Discuss General |
With the passage of time, All these icons are actually images, so we shall be ably to improve their appearance and functionality as we are inspired without any impediment or hardship on the |
|||||||||||||
Import Discuss |
Regarding inf( ? ) and imp( ! ), we would like to diverge here a moment inline, not to another window, and expound upon the importance. All too often a person has a question, "What is the meaning of that term?" Or, "What do they mean, it is critical to xyz the abc." One goes to the so-called help page, looks up xyz, and they proudly annunce they have 328 "Best Results", or some such term. And ABSOLUTELY NONE of them answer the question which logically had an answer in the mind of the person who wrote the statement on that specific page with a clear and specific context! This is not a mistake, this is not an oversight, it is not an error. It is a clear, intentional, act of a slovenly I-don't-care-because-I-don't-have-to attitude. With time, Until such time, please try to utilize the inf( ? ) icon functionality of the todoitQ1() script, as well as the others as appropriate, to link users as directly as possible to specific help that directly speaks to the issues at the point of the link, not some vague meandering that takes one's time but leaves one wondering "Is the answer in here? Is that it?" The detail presented in the above Value itemizations should clearly explain how this can be easily accomplished, providing of course one already has the answer to the question which he himself is posing.
If there's any uncertainty whatsoever as to the functionality of these icons, please do not hesitate to contact us.. We truly want to help you help us build the most enlightened and functionally viable archive in existence.
|
|||||||||||||
Psycho |
One may wonder why When the page one is reading suddenly disappears, it is no longer his center of attention. He can't just flick his eyes back. He has to exert additional effort and co-ordination, and then retrain and focus. For example, when It is impossible to measure, but an astute observer realizes it is valid. Just like the traditional, and used-to-be-strictly-enforced code of silence in a library. No one ever measured how much creativity was lost from chatter, but logic and reason dictated the validity of tranquility. There are all manor of devices and techniques one can use to gain attention, notoriety, traffic, membership, loyalty and wealth. | |||||||||||||
Note | ||||||||||||||
. | ||||||||||||||
Parm 14: todoitQPageIconAltOverride |
||||||||||||||
Purpose | alt text to display when one mouseovers todoitQPageIcon parm 13. | |||||||||||||
Function ality |
Override todoitQ2() script todoitQPageIconAltOverride parm 8, which itself overrides initLoadYYMMDD() script initPageIconAlt parm 12. | |||||||||||||
Status | Optional | |||||||||||||
Type | Text | |||||||||||||
Format | Free | HTML compatible text. | ||||||||||||
icon Values |
Default initLoadYYMMDD() script initPageIconAlt parm 12 text. | |||||||||||||
? | Information | |||||||||||||
! | Important Information | |||||||||||||
* | Footnote | |||||||||||||
~ | Deadend, just follow the ~ and you will not go in circles AND you can easily return. | |||||||||||||
~~ | This link will clobber the current page, so you will need to use your back button. | |||||||||||||
Values | End | |||||||||||||
Descript |
alt text is text that is displayed when a user mouseovers and image. The text is generally displayed in proximity to the mouseover point. One first specifies an iconAlt in initLoadYYMMDD() script initPageIconAlt parm 12. If not spec, or spec null, initLoadYYMMDD() script sets to the defaults indicated above. We've not conjured up any reason one would deliberately want null, but if you do, spec a single space( ). todoitQ2() script does no automatic override. This todoitQ1() script does no automatic override. | |||||||||||||
Discuss |
It is interesting that there is no alt equilivant for the hyperlink itself. Indeed, One of the very first motivating factors to create inf( ? ) was because inf( ? ) is an image and one can thereby utilize alt to display instantaneous at-the-mouse-point information. Frankly, it is discusting when one thinks about it. How can a group of intellectuals who designed a great thing, the Internet and a component HTML, not see that if one wants information to describe an image, he might want information to describe a link. The functionality of such a concept is not related to the underlaying structure, is it an image or a link to an image, but rather, to what is it ! At this point, believe it or not we become speechless ... | |||||||||||||
. | ||||||||||||||
Parm 15: debug |
||||||||||||||
Purpose |
For debugging the initial integration of a page into the |
|||||||||||||
Status | Optional | |||||||||||||
Type | Integer | |||||||||||||
Format | Specific | |||||||||||||
Values | Depth | Action | ||||||||||||
Default | 0 | Off | Off, but critical alerts shall be issued. | |||||||||||
1 | Detail | On. alerts at significant points as a trace. | ||||||||||||
2 | Important | On. alerts of important or summary info. | ||||||||||||
Values | End | |||||||||||||
Discuss |
Debug allows one to see what Critical alerts are issued regardless. For example, by default, if a frame name can't be found, it alerts and attempts an abort. This is because something like not finding a frame name is generally not a dynamic situation, it is static. If a frame can't be found, it is most likely misspelled or belongs to a different frameset, either case of which occurs as one is integrating the page, and one needs to know immediately and with certainty. But, to reitterate, once a page has been integrated, the frame name required will not change, and so the alert will never occur when a user is referencing that page. But still, there are conceivable instances when it would be more convenient to turn off this specific check, or at least the alert and abort. For example, many browsers simply open a new window for frame not found, And, if one has not yet gotten around to defining a special frameset, but knows the name of the frame within it, he might want to spec the correct frame, and have the browser open a new window until such time as he solidifies the new frameset. So, eventually, there shall be the ability to change this default setting via user preferences, settings and controls. |
|||||||||||||
Note | There are a plethora of other courtesy checks which inityymmddLoad script and inityymmddFrame script (not this init script) performs which are not critical but which none the less indicate that things will not go as intended. Again usually spelling errors which, eg., might result in the theme of a page being wrong. Currently those checks and actions are set to what we think are reasonable but eventually one shall have the option to set each and every one of them in accordance with dynamic requirements, via user preferences, settings and controls. | |||||||||||||
. | ||||||||||||||
Parm 16: iam |
||||||||||||||
Purpose |
For debugging the initial integration of a page into the |
|||||||||||||
Status | Optional | |||||||||||||
Type | String | |||||||||||||
Format | Free | |||||||||||||
Discuss |
When an alert is issued as per debug parm 6 the intent is to provide tracing information within each alert so that one can follow the flow, in an environment which is otherwise implementor-hostel, as follows: When a function is entered, a local variable iam is assigned is's name. When said function calls another function, it passes this name to that function, but adds information. When it was called, it's caller passed it's name which this function receives as the variable caller. So upon entry to a function, that function has it's own name and it's caller's name, so it sets a third local variable, iamCalleraller to the value of it's own name followed by it's caller's name, separated by a percent( % ). This process goes on and on, so that every time a function is entered, one not only knows it's name, but who called it. Each time the list gets longer. In a multi frame environment, and therefore multiple threads, each calling similar and/or the same functions often multiple times, otherwise one's mind is turned to putty. For the initial call, that is for example here in init, one can place any useful text string. |
|||||||||||||
End | ||||||||||||||
FOOTNOTE |
||
Scripts Required: todoitQ2()
What We Have Set Up For You
We have already set up for you all the initial files you need to begin your intellectual persuits as an
Sort of ...
First we must review these files we have established for you and then in the step-by-step, which is the next and last section, there is just one more group of overview-intro-diversions with the intent of establishing the proper context.
Please keep in mind, that though you may be an expert in your field, this does not mean you have detailed expertise in web creation or publishing. Of course, we are not attempting to proved that here, but there are so many little things that if one does not perceive can result in literally havoc.
The information here is essential so that you do not inadvertently remove a critical file, but fortunate it is also quite simple because there is nothing critical that you have to do here. Just critical things that you don't want to do.
That's actually easy.
But you should not skip this section thinking, "Ehh, it is just a list of files," because we also begin now to discuss the specific details of the integration of you web pages into the
So, we proceed.
What You Should Find
In your root directory you should find the following files:
Content Root Directory: Files |
||
Function | What To Do | File |
Sys Support Page | Leave Alone | all_all__clf_load_frame.html |
Website Index | Change | index.html |
Template Page | Make Copies | template.html |
Your work frameset | Changes & Copies | yourTopSub__f_spr_work.html |
In your root directory you should find the following directories:
Content Root Directory: Directories |
||
Function | What To Do | Direcory |
Administrative Files | - | adm/ |
Art Files | - | adm/art/ |
Background Images | - | adm/art/bg |
Buttons In The Form Of Images | - | adm/art/button/ |
Logos | Replace | adm/art/logo/ |
Image Files Of Content Nature | - | adm/image/ |
Sound Files | - | adm/sound/ |
. | ||
Sys Support Dir | Leave Alone | all |
All the adm/ directories except adm/art/logo/ are empty at this time and established for future use.
In your adm/art/logo/ directory you should find the following files:
Content adm/art/logo/ Directory: Files |
||
Function | What To Do | File |
logo | Replace | logo.gif |
In your all/ directory you should find the following files:
Content all/ Directory: Files |
||
Function | What To Do | File |
Sys Support File | Leave Alone | all_all__js.js |
An Itemized Breakdown
We shall briefly discuss each of the items in the various directories. But, in the following discussion when we say optional this does not mean that they should be casually ignored. Some of them are of course totally optional such as for example your logo. And initFrame150801() which is only used when needed.
Others are optionial in the sense that they are not absolutely essential for functioning, however, they do provide usefull functionality and we desire that your website and domain be of the highest quality and utility to our mutual customers.
In the event of, for example, time constraints, then because of their status their implementation can be delayed. But eventually, of course when otherwise appropriate, they should be implemented and utilized.
Examination: Your root directory: Files
Examination Root Directory: Files |
||
Function | What To Do | File |
Sys Support Page | Leave Alone | all_all__clf_load_frame.html |
Website Index | Change | index.html |
Template Page | Make Copies | template.html |
Your work frameset | Changes & Copies | yourTopSub__f_spr_work.html |
File: all_all__clf_load_frame.html
File: index.html
index.html is normally the first page a surfer would see upon entry to your website & subdomain. It is your starting point. Mold it according to your style and intent.
Normally the index contains either indexes or menus, or if it is a part of a frameset such as you are using at
As you will see as you progress through this website construction detail, from what is called the html head of this index page you can launch numerous other pages which would be your indexes or menus. So
File: template.html
template.html is, as the name implies, a template or skeleton. It contains all the basic code and scripts you will require to establish a web page. You can simply copy it, and then change the name and specifications that we have provided to what you require. Then add your content.
It begins with a plethora of HTML tags. Yes, we are aware that some of them are arcane and possibly even discontinued.
Most of these tags are optional.
But some of them are essential such as, title, description, and keywords, which are used by major search engines, so that surfers can find your website.!
And many of them have to do with archiving your pages in archives throughout the world. Consider: You are creating intellectual documents. Once locally archived, other scholars or just curiosity seekers, will reference them through mechanisms other than prominent Internet search engines. But these documents will not be archived unless proper HTML tags are established.
After the HTML tags comes a reference to
The relative address it employes is the same as used by the javascript reference next and will be discussed in proper detsil in the step-by-step.
Again, we have no need nor desire to reinvent the wheel. These CSS specifications which are useful for establishing the style, theme, and ambiance of web pages throughout a site in a uniform fashion, are in fact quite tedious. Therefore, should you be aware of the existence of a pre-established group of such specifications, please advise.
After the CSS comes a reference to
The relative address it employes is the same as used by the CSS reference above and will be discussed in proper detsil in the step-by-step.
After the javaScript comes a reference to the script variables: iam and spr . These variables are optional but convenient , for holding the technical name of the page for three(3) reasons. First, if one has to specify the name more than once this will ensure that it is properly spelled. Second, because the init script has a large number of arguments, by placing these variables at the left of the page, it is easy to locate the names. And third, almost the opposite, because the init script has arguments which are primarily text, these two small variables which are placed together in the argument list are easy to spot and thus help delineate points within the list.
After the script variables comes a reference to
And After the script variables and actually before the inityymmddLoad() script comes a reference to
After the init() scripts comes a few references to
Notice that most of them are commented out with the doubleSlash( // ). We often find it convenient to include a script reference when common, comment it out, and then should it become necessary it is already specified. In this case, often when a page is being created one must stop or delay. These
After the
After the
File: yourTopSub_f_spr_work.html
yourTopSub__f_spr_work.html is the second half of a pair of nested framesets. The first half is org_edu__f_spr_main.html located in the
yourTopSub__f_spr_work.html is pre arranged in a manor we won't expound upon here, but you are at liberty to redefine it, even into one single large frame, though once we have fully implemented our collapsing frame functionality that will not be necessary.
And should you require assistance in redefining it this can be achieved for a modest fee.
yourTopSub of course is your full subdomain name so that if you were knowItAll.edu.aedok.org, located in directory aedok.org/edu/knowItAll the frameset that you would see in your directory above would be
org_edu_knowItAll__f_spr_work.html which pairs with our frameset:
org_edu__f_spr_main.html
spr of course standing for single page request.
Examination: Your root directory: Directories:
Examination Root Directory: Dirs |
||
Function | What To Do | Direcory |
Administrative Files | - | adm/ |
Art Files | - | adm/art/ |
Background Images | - | adm/art/bg |
Buttons In The Form Of Images | - | adm/art/button/ |
Logos | Replace | adm/art/logo |
Image Files Of Content Nature | - | adm/image/ |
Sound Files | - | adm/sound |
. | ||
Sys Support Dir | Leave Alone | all |
You will notice as we reach the end of this section that these directories we are discussing here are for the most part empty or sparse. And they shall stay that way. This because for the most part
There are however instances when it is required or expedient to place files in a more local directory, ie., closer to you. Your logo, should you choose to use one, is a good example of a file that is best placed in your directory, not mixed and mingled in ours.
Directory: adm/
adm refers to administrative, those things which are generally ancillary but are needed in order to get things done.
The adm directory content should be changed only by
Their meanings are as follow:
adm/art/ Contains art that are not content nature like photographs, which generally are content. They may be images, or they may be other forms of art. Generally, no files are contained in adm/art/ proper, but rather, it is a subdivision.
adm/art/bg Contains background images, sometimes just a few pixels which are then stretched or repeatedly used to for the background.
adm/art/button Contains images of buttons and tools and such icons.
adm/art/logo.
Contains logos, sometimes many variations on the same company or subdomain. For example our standard AEDOK 3-line rainbow image and then the 1-line, smaller footprint, version.
Your logo, should you choose to use one, resides here.
adm/image Contains the context type images like the photographs.
adm/sound Contains sound files of a non-content nature, like buzzes, whistles, and click, et al.
Directory: all/
You will notice we use the word all frequently. all refers to something which applies to all sub parts.
Any files
Examination: sub directories Files:
Examination: sub directories Files |
|||
Function | What To Do | Directory | File |
Administrative Files | - | adm/ | |
Art Files | - | adm/art/ | |
Background Images | - | adm/art/bg | |
Buttons In The Form Of Images | - | adm/art/button/ | |
Logos | Replace | adm/art/logo/ | logo.gif |
Image Files Of Content Nature | - | adm/image/ | |
Sound Files | - | adm/sound/ | |
. | |||
Sys Support Dir | Leave Alone | all | all_all__js.js |
All the adm/ directories except adm/art/logo/ are empty at this time and established for future use.
Directory: adm/ files
File: logo.gif
logo.gif found in adm/art/logo/should be replaced with your logo, should you choose to use one. Initially the logo is set to our
As stated, it may or may not be transparent depending upon whether the entire image is already colored the way you want. It is being placed on a light blue-gray background. Experimentation is the best technique if uncertain.
Further, it doesn't have to be an official logo. It could be some small imagery that promotes your subdomain and website. But be sure it doesn't clash with our
We suggest you logon right now to your subdomain to see the
You can set your own logo.gif or logo.jpg at any time and change it as you like. You can even change it periodically for special promotions.
Directory: all/ files
File: all_all__js.js
The Step By Step
In this, the final section, we shall proceed methodically through the steps required to integrate your web pages into the
Then, all you must do is add the content.
But one final time we must first diverge to establishing the proper context.
Please keep in mind, that though you may be an expert in your field, this does not mean you have detailed expertise in web creation or publishing. Of course, we are not attempting to proved that here, but there are so many little things that if one does not perceive can result in literally havoc.
Forwarned is forearmed, or something like that.
An
Robustness is a concept of implementing something in a forgiving manner. In a manor so that things do not have to be letter perfect. Presumably, if there are small errors, a robust system will continue forward rather than argue like an 8-year old child that has just learned to argue.
But when robustness is implemented by fools, it results in confusion and chaos.
It took mankind literally centuries to realize that in order for a person to do something correctly, he must first understand what is that correct way. It then took mankind additional centuries to realize that in order for a person to understand what is the correct way, he must be told. It then took mankind additional centuries to figure out clear and precise means of telling, ... specification, called specs.
These three(3) concepts are simple and taken for granted, but it took mankind centuries, ... centuries, to actually figure that out. Every child has to learn these things, so if follows that some first person had to figure it out and then attempt to educate the rest. But it is not just something that is realized today and tomorrow all is clear and orderly. It took centuries.
That takes us to the 20th Century.
Toward the 2nd half mankind began the tedious process of arguing with itself over failure to comply with the letter of the specifications. Like the 8-year old child.
If a single dot or tiddle was out of place, heaven forbid a word or phrase, the entire thing would be discarded. Javascript still does that sometimes.
Then there was realized the concept of robustness. That it is possible to design a system according to precise specifications, and yet should the information presented according to those precise specifications fall short of perfection, fall short of the level of precision within the specifications, then, even then, it is possible to understand sometimes all, and usually most, of what is, or has been, specified, so that those interpreting what has been specified can proceed forward as though all was specified according to the letter perfect.
A remarkable concept. Remarkable. Until implemented by fools.
Making a long story short, for there were many additional steps to arriving at where we are now, when no error is reported, not even a hint, which is common in presumably robust systems, one is constantly kept in the dark as to whether there are errors, and when something does not work as intended which is the only indication of an error that that person would receive, the process turns into a murder mystery. Essentially something has died and one has to search to find out why. And sometimes even who has died before one can even begin to search for why.
Because with additional levels of stupidity whereby there is not even an indication of incorrectness via a difference in performance or appearance, then as chief inspector Dryfuss exclaimed,
"Logic and reason are things of the past, and madness rulls!"
In these situations, one might only suspect that there is something strange going on. Something maybe not quite right. That is, if he is lucky. Otherwise he is clueless.
For example here, if you specify the creation date of a page incorrectly, you will not be given an error message. And to compound this problem, there will not be any indication that there is an error. So first you were not told that it is wrong, and in this case of creation date, there will be no indication that it is wrong from say, the performance of the page, or the appearance of the page. A search engine scanning the page was simply ignore the error. And it will not reported either. You could enter your grave and not know that a half century earlier you had incorrectly entered that creation date.
True, the creation date of a webpage has little effect upon you over all existence, but that is just an example.
And so this is what we refer to as infantile. In an attempt to create what is called a robust system, the entire society has taken great leaps backward to an intellectual level before it was realized that it is important to specify things correctly to begin with. So the system is actually designed to be stupid. It renders one speechless.
Except to say, "Be eternally vigilant."
Abbreviations
For brevity we use the following abbreviations. Regrettably, sometimes it makes the narration flow a little choppy. But it does allow for a more concise step-by-step. On first appearance some of these entries appear trivial, such as from and to and format. But when one has omitted other simple words that are normally found in a sentence, these trivial meanings can become confused. For example, does from mean "Go get it from somewhere," or look from a certain location to another location? Is format and active verb like look, telling you to do something, to format the item, because in some of these step-by-steps we are actually telling you to do something, not just philosophizing, or is it passive, meaning the format of the item is?
It is hopped that by using these abbreviation (grouped, not alphabetical) the net result is clarity, rather than confusion.
Abbreviations |
||
Abbr | Rough Meaning | |
spec | specified, or specifically | |
edit | use a text editor, not necessarily change something right now | |
comment | a comment line within the text, which has a format dependent upon the specific, local, syntax | |
find | look within the text | |
find something something-else | find a thing that is called by another name. eg., find tag title which means: find the tag called title | |
from | from an approximate location within the text | |
to | to an approximate location within the text | |
between ... and .. | in between the two(2) .. | |
. | ||
format | a precise spec, but not quite a syntax | |
form | the components of the format | |
perfect | whether or not spec must be letter perfect | |
. | ||
note | take notice of | |
meaning | a quick summary without an analysis | |
ana | a precise analysis without a discussion | |
confuse | a point of possible confusion. should read extremely carefully | |
discuss | a discussion, often following an ana, which pulls in related topics | |
diverge | a discussion, often following a discuss, which can go anywhere as we often do | |
. | ||
ie. | the common meaning: "that is, .." | |
eg. | the common meaning: "for example, .." | |
asm | assume | |
. |
Understanding some html Components
Some html components are a single item, eg., < br >, which is a line break, ie., going to the next line.
Some html components are a pair of items, eg., < title > and < /title >, which begins and end the title, eg., < title > Find It All Here < /title >, where the title is Find It All Here.
Some html components are a triplets of items, eg., < meta name="creation date" content="" >. In this case, the tag is actually meta, and there may be many unrelated meta tags, and this specific meta tag has the name as indicated in quotes( " " ) following the word name and separated therefrom by the equal( = ), in this case creation date, and the value that you are assigning to this name is to be placed between the quotes( " " ) following the word content and also separated therefrom by the equal( = ), which in this case would be the creation date.
Other html components contain even more components which we shall not get into here, for, these three(3) variations should get us thru these step-by-steps.
Some language specs are case sensitive which means upper case letters are treated as different from their corresponding lower case counterpart, thus a and A are different, and other language specs are case-insensitive which means upper case letters are treated as the same as their corresponding lower case counterpart, thus a and A are the same. If you see it one way and it works, you likely shouldn't change it unless you know it's ok, or feel like experimenting, which of course is ok if you are prepared for dysfunctional consequences.
html is case-insensitive but it might be unwise to mix case within a single tag, eg., < meTa Name="creation date" content="" > is asking for trouble. Just because it is supposed to be case-insensitive doesn't mean that the browser hasn't acquired sub-human characteristics.
Punctuation must generally be letter perfect. Do not add punctuation in order to make things more uniform, definitely not within quotes( " " ). Because:
Some specifications use the space( ), like "creation date".
Some specifications use the dash( - ), like "resource-type".
Some specifications omit punctuation and space( ), like "imagetoolbar".
The only thing of uniform consistency than one can count on is that none of them will tell you if you are in error.
There is a concept known as white space which means essentially if there is one(1) space( ) you can have two(2) or more. So if one sees spaces( ) in eg.:
iam = "pageName.html", he could spec additional spaces( ) before or after the equal( = ), thus:
iam ="pageName.html", or
iam= "pageName.html", or
iam = "pageName.html"
And if it is punctuation not within quotes( " " ), eg., again the equal( = ) in:
iam="pageName.html", one can spec space( ) even though what you see as the spec has none, just as above.
In this regard, because we use small print and for other display formatting reasons, we show spaces sometimes where you should not use them. Specifically in html tags, the textual portion of the tag should immediately follow the openBrokenBracket( < ), thus:
this<tag>
not< tag >
And don't throw in line breaks unless you know otherwise. Some specs don't care and others do. Definitely within quotes( " " ), breaking the line is a bad idea. So eg., if you have:
name = "thisPageNameIsBecommingTooLong.html", then:
name = "thisPageNameIsBecommingTooLong
.html"
won't work even though it was broken at punctuation, because it was within quotes( " " ). Whereas:
name =
"thisPageNameIsBecommingTooLong.html"
will work, at least in javascript and in our script references we discuss.
And it is also possible to break up a long script reference as we do in or examples, though sometimes it is just easier to leave it all on a single line.
The following:
initLoad150801( initTopSub, initFrameset, initFrame, initIam, initSPR, initType, initPageGroup, initPageTitle, initPageFunc, initPageLevel, initPageIcon, initPageIconAlt, oneDebug, caller );
can be broken like this:
initLoad150801(
initTopSub,
initFrameset,
initFrame,
initIam,
initSPR,
initType,
initPageGroup,
initPageTitle,
initPageFunc,
initPageLevel,
initPageIcon,
initPageIconAlt,
oneDebug,
caller
);
Or better yet:
initLoad150801(
initTopSub, initFrameset, initFrame,
initIam, initSPR, initType,
initPageGroup, initPageTitle,
initPageFunc, initPageLevel,
initPageIcon, initPageIconAlt,
oneDebug, caller
);
But again, unless you know otherwise or feel like experimenting it would be wise to avoid it.