Moving session id out of jet tag.
This commit is contained in:
parent
24035c9d28
commit
fd5069f69f
59
JetCore.aux
59
JetCore.aux
@ -1,59 +0,0 @@
|
|||||||
\relax
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{5}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Tags and Attributes}{7}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {2.1}User Defined Tags and Tag Liraries}{7}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Variables and Variable Types}{9}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Global Variables}{9}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Local Variables}{9}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Keyword Variables}{10}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Environment Variables}{10}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.5}CGI Variables}{10}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Expressions}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Operators}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}Arithmentic Operators}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Boolean Operators}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {4.2}Function Reference}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}concat}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}integer}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}left}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.4}random}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.5}round}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.6}substring}{12}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Common Gateway Interface Features}{13}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {6}Tag Reference}{15}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.1}call}{15}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.2}comment}{15}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.3}cookie}{15}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.4}dump}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.5}expr}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.6}for}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.7}header}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.8}if/else}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.9}ifrow/else}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.10}include}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.11}jet}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.12}mysql}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.13}read}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.14}set}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.15}sql}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.16}stream}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.17}system}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.18}tag}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.19}until}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.20}while}{19}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.21}whiledir}{19}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.22}whilerow}{19}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.23}write}{19}{}\protected@file@percent }
|
|
||||||
\gdef \@abspage@last{19}
|
|
186
JetCore.log
186
JetCore.log
@ -1,186 +0,0 @@
|
|||||||
This is e-pTeX, Version 3.141592653-p4.1.0-230214-2.6 (utf8.euc) (TeX Live 2023/Debian) (preloaded format=ptex 2025.1.13) 30 APR 2025 16:16
|
|
||||||
restricted \write18 enabled.
|
|
||||||
%&-line parsing enabled.
|
|
||||||
**JetCore.txt
|
|
||||||
(./JetCore.txt
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.1 \documentclass
|
|
||||||
{book}
|
|
||||||
?
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.3 \title
|
|
||||||
{JET Extension Tags}
|
|
||||||
? q
|
|
||||||
OK, entering \batchmode...
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.4 \author
|
|
||||||
{Bradford Matthew Arant Sr.}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.5 \date
|
|
||||||
{\today}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.5 \date{\today
|
|
||||||
}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.7 \begin
|
|
||||||
{document}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.9 \maketitle
|
|
||||||
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.11 \tableofcontents
|
|
||||||
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.13 \chapter
|
|
||||||
{Introduction}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.23 \chapter
|
|
||||||
{Tags and Attributes}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.32 ...e from mysql may be performed using the \<
|
|
||||||
mysql\> tag
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Missing $ inserted.
|
|
||||||
<inserted text>
|
|
||||||
$
|
|
||||||
<to be read again>
|
|
||||||
\mskip
|
|
||||||
\>->\mskip
|
|
||||||
\medmuskip
|
|
||||||
l.32 ...mysql may be performed using the \<mysql\>
|
|
||||||
tag
|
|
||||||
I've inserted a begin-math/end-math symbol since I think
|
|
||||||
you left one out. Proceed, with fingers crossed.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.33 in combination with the \<
|
|
||||||
ifrow\>, \<whilerow\> and \<sql\> tags.
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.33 in combination with the \<ifrow\>, \<
|
|
||||||
whilerow\> and \<sql\> tags.
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.33 ...on with the \<ifrow\>, \<whilerow\> and \<
|
|
||||||
sql\> tags.
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Missing $ inserted.
|
|
||||||
<inserted text>
|
|
||||||
$
|
|
||||||
<to be read again>
|
|
||||||
\par
|
|
||||||
l.34
|
|
||||||
|
|
||||||
I've inserted a begin-math/end-math symbol since I think
|
|
||||||
you left one out. Proceed, with fingers crossed.
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (81.87863pt too wide) in paragraph at lines 32--34
|
|
||||||
[]\tenrm Outputting a database from mysql may be per-formed us-ing the mysql$ \
|
|
||||||
teni tagincombinationwiththeifrow ; whilerow andsql tags:$ |
|
|
||||||
|
|
||||||
\hbox(6.94444+1.94444)x469.75499, glue set - 1.0
|
|
||||||
.\hbox(0.0+0.0)x20.0
|
|
||||||
.\displace 0.0
|
|
||||||
.\tenrm O
|
|
||||||
.\tenrm u
|
|
||||||
.\tenrm t
|
|
||||||
.etc.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.35 \section
|
|
||||||
{User Defined Tags and Tag Liraries}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.66 \chapter
|
|
||||||
{Variables and Variable Types}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
! Undefined control sequence.
|
|
||||||
l.78 \begin
|
|
||||||
{itemize}
|
|
||||||
The control sequence at the end of the top line
|
|
||||||
of your error message was never \def'ed. If you have
|
|
||||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
|
||||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
|
||||||
and I'll forget about whatever was undefined.
|
|
||||||
|
|
||||||
[1] )
|
|
||||||
Output written on JetCore.dvi (1 page, 3708 bytes).
|
|
BIN
JetCore.pdf
BIN
JetCore.pdf
Binary file not shown.
45
JetCore.toc
45
JetCore.toc
@ -1,45 +0,0 @@
|
|||||||
\contentsline {chapter}{\numberline {1}Introduction}{5}{}%
|
|
||||||
\contentsline {chapter}{\numberline {2}Tags and Attributes}{7}{}%
|
|
||||||
\contentsline {section}{\numberline {2.1}User Defined Tags and Tag Liraries}{7}{}%
|
|
||||||
\contentsline {chapter}{\numberline {3}Variables and Variable Types}{9}{}%
|
|
||||||
\contentsline {section}{\numberline {3.1}Global Variables}{9}{}%
|
|
||||||
\contentsline {section}{\numberline {3.2}Local Variables}{9}{}%
|
|
||||||
\contentsline {section}{\numberline {3.3}Keyword Variables}{10}{}%
|
|
||||||
\contentsline {section}{\numberline {3.4}Environment Variables}{10}{}%
|
|
||||||
\contentsline {section}{\numberline {3.5}CGI Variables}{10}{}%
|
|
||||||
\contentsline {chapter}{\numberline {4}Expressions}{11}{}%
|
|
||||||
\contentsline {section}{\numberline {4.1}Operators}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.1.1}Arithmentic Operators}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.1.2}Boolean Operators}{11}{}%
|
|
||||||
\contentsline {section}{\numberline {4.2}Function Reference}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.1}concat}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.2}integer}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.3}left}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.4}random}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.5}round}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.6}substring}{12}{}%
|
|
||||||
\contentsline {chapter}{\numberline {5}Common Gateway Interface Features}{13}{}%
|
|
||||||
\contentsline {chapter}{\numberline {6}Tag Reference}{15}{}%
|
|
||||||
\contentsline {section}{\numberline {6.1}call}{15}{}%
|
|
||||||
\contentsline {section}{\numberline {6.2}comment}{15}{}%
|
|
||||||
\contentsline {section}{\numberline {6.3}cookie}{15}{}%
|
|
||||||
\contentsline {section}{\numberline {6.4}dump}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.5}expr}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.6}for}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.7}header}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.8}if/else}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.9}ifrow/else}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.10}include}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.11}jet}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.12}mysql}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.13}read}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.14}set}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.15}sql}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.16}stream}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.17}system}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.18}tag}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.19}until}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.20}while}{19}{}%
|
|
||||||
\contentsline {section}{\numberline {6.21}whiledir}{19}{}%
|
|
||||||
\contentsline {section}{\numberline {6.22}whilerow}{19}{}%
|
|
||||||
\contentsline {section}{\numberline {6.23}write}{19}{}%
|
|
471
JetCore.txt
471
JetCore.txt
@ -1,471 +0,0 @@
|
|||||||
\documentclass{book}
|
|
||||||
|
|
||||||
\title{JET Extension Tags}
|
|
||||||
\author{Bradford Matthew Arant Sr.}
|
|
||||||
\date{\today}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\maketitle
|
|
||||||
|
|
||||||
\tableofcontents
|
|
||||||
|
|
||||||
\chapter{Introduction}
|
|
||||||
|
|
||||||
JET will pass through the untagged areas to the output without any
|
|
||||||
modifications. Data contained within the tags may modify their
|
|
||||||
containers before placing any output. The space taken by the tag
|
|
||||||
itself is not passed to the output and will not appear in the output.
|
|
||||||
|
|
||||||
Skip Blank Lines options on containers will skip passing any blank
|
|
||||||
lines or line containing only whitespace to the output.
|
|
||||||
|
|
||||||
\chapter{Tags and Attributes}
|
|
||||||
|
|
||||||
XML style tagging is used to insert functions and other behaviors into
|
|
||||||
the script. As the document contents are output a tag may be inserted
|
|
||||||
to perform the desired function and affect the output.
|
|
||||||
|
|
||||||
Tag attributes are used to pass parameters into the operations and
|
|
||||||
functionality for each tag.
|
|
||||||
|
|
||||||
Outputting a database from mysql may be performed using the \<mysql\> tag
|
|
||||||
in combination with the \<ifrow\>, \<whilerow\> and \<sql\> tags.
|
|
||||||
|
|
||||||
\section{User Defined Tags and Tag Liraries}
|
|
||||||
|
|
||||||
You can define your own tag definitions and use them within your JET
|
|
||||||
scripts.
|
|
||||||
|
|
||||||
Keywords are not defined as part of the tag definition and any
|
|
||||||
attribute added to the implementation of the tag is passed into the
|
|
||||||
tag process as a local variable for that container.
|
|
||||||
|
|
||||||
Tag definitions can also be defined as scoped or unscoped, as follows:
|
|
||||||
|
|
||||||
scoped - local variables using the \#[n] format can be scoped to just
|
|
||||||
your tag contents. Access to local variables where your tag is being
|
|
||||||
used must use the 'parent' scope option to retrieve variables from the
|
|
||||||
parent.
|
|
||||||
|
|
||||||
unscoped - local variables are shared with the parent tag environment
|
|
||||||
and are not unique to your tag definition.
|
|
||||||
|
|
||||||
A <container /> tag can be inserted into the container and will take
|
|
||||||
the contents of the container at runtime and insert it into the output
|
|
||||||
when processing the user defined tag definition. The container tag of
|
|
||||||
the the <container /> is processed before the container containing the
|
|
||||||
<container /> so that local variabls can be set and processed that
|
|
||||||
will affect the tags overall output.
|
|
||||||
|
|
||||||
Tags are many times nested with tags running within the container of a
|
|
||||||
higher tag.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\chapter{Variables and Variable Types}
|
|
||||||
|
|
||||||
Variables are used to contain dynamic content values and can be
|
|
||||||
sourced from several locations and limited in scope depending on use.
|
|
||||||
Some variable types can be set to reflect script state or are read
|
|
||||||
only from other outside sources of data.
|
|
||||||
|
|
||||||
Jet tags can be either scoped or unscoped.
|
|
||||||
|
|
||||||
The following is a list of
|
|
||||||
variable types and a brief description of their source:
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
|
|
||||||
\item Global - values can be initiaized using the set tag and
|
|
||||||
specifying the scope of global.
|
|
||||||
|
|
||||||
\item Local -
|
|
||||||
|
|
||||||
\item Keyword - within a tag's container we may access the keyword
|
|
||||||
values specified on the containing tag.
|
|
||||||
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\section{Global Variables}
|
|
||||||
|
|
||||||
Global variables are available to all logic once the values have been
|
|
||||||
set.
|
|
||||||
|
|
||||||
Global variables are accessed throughout the procedure with the
|
|
||||||
\$[name] syntax.
|
|
||||||
|
|
||||||
Global is the default if the scope is
|
|
||||||
not specified for any function that writes to a variable.
|
|
||||||
|
|
||||||
\section{Local Variables}
|
|
||||||
|
|
||||||
Local variables are established using the set tag and specifying a
|
|
||||||
scope of local. Local variables are typically only available within
|
|
||||||
the container where they are defined. Some containers may not be
|
|
||||||
capable of storing local variables (i.e. set tag) and are inheriting
|
|
||||||
the local scope from their parent tag.
|
|
||||||
|
|
||||||
\section{Keyword Variables}
|
|
||||||
|
|
||||||
Keyword variables are set when they are specified on a containing tag.
|
|
||||||
Within the container you can access the variable using the syntax
|
|
||||||
\$[\%name].
|
|
||||||
|
|
||||||
The variable retrieved is not processed for variable resolution.
|
|
||||||
|
|
||||||
\section{Environment Variables}
|
|
||||||
|
|
||||||
\section{CGI Variables}
|
|
||||||
|
|
||||||
When operating Jet in CGI mode you have access to the form data
|
|
||||||
submitted by the remote client (usually a browser or curl request)
|
|
||||||
using the POST method.
|
|
||||||
|
|
||||||
\chapter{Expressions}
|
|
||||||
|
|
||||||
Expressions are used to perform complicated calculations (arithmetic), perform
|
|
||||||
comparisons between values (boolean), manipulate strings (string) or
|
|
||||||
perform operations on dates (date).
|
|
||||||
|
|
||||||
\section{Operators}
|
|
||||||
|
|
||||||
Operators are used to perform arithmetic or boolean operations on
|
|
||||||
arguments to derive a particular result. There are two types of
|
|
||||||
operators, as follows:
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
|
|
||||||
\item Arithmetic -
|
|
||||||
|
|
||||||
\item Boolean -
|
|
||||||
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\subsection{Arithmentic Operators}
|
|
||||||
|
|
||||||
\subsection{Boolean Operators}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Function Reference}
|
|
||||||
|
|
||||||
\subsection{concat}
|
|
||||||
|
|
||||||
\subsection{integer}
|
|
||||||
|
|
||||||
\subsection{left}
|
|
||||||
|
|
||||||
\subsection{random}
|
|
||||||
|
|
||||||
Use the random function to return a random number between 0 and 1.
|
|
||||||
|
|
||||||
\subsection{round}
|
|
||||||
|
|
||||||
Use the round function to round a numeric value to the specified
|
|
||||||
number of digits after the decimal point.
|
|
||||||
|
|
||||||
\subsection{substring}
|
|
||||||
|
|
||||||
Use the substring operation to extract a portion of a string and return
|
|
||||||
the value as a string.
|
|
||||||
|
|
||||||
\chapter{Common Gateway Interface Features}
|
|
||||||
|
|
||||||
JET extension tags provides options for enabling the processing of
|
|
||||||
data using the Common Gateway Interface (CGI) specification used by
|
|
||||||
Apache and NGINX as well as other HTTP server applications. This makes
|
|
||||||
JET a powerful tool for creating web interfaces and API handler
|
|
||||||
environments for various javascript frameworks as well as just native
|
|
||||||
HTML style interaction.
|
|
||||||
|
|
||||||
To enable the CGI features within a requested document you can specify
|
|
||||||
the cgi="true" attribute on a <jet> tag containing the document or
|
|
||||||
<jet /> tag contained within the document.
|
|
||||||
|
|
||||||
When you enable the CGI interface the script will look for specific
|
|
||||||
environment variables used to retrieve the input data from the browser
|
|
||||||
interface and automatically provide these values to the JET scripting
|
|
||||||
using the variables interface. There are currently three supported
|
|
||||||
data formats or content types through this interface. These content
|
|
||||||
types are:
|
|
||||||
|
|
||||||
formdata/urlencoded
|
|
||||||
mutipart/formdata
|
|
||||||
text/json
|
|
||||||
|
|
||||||
\section{Session Control}
|
|
||||||
|
|
||||||
Common use of the CGI is requiring the transaction based interaction
|
|
||||||
of a web browser to maintain a state between interactions. JET 2.0
|
|
||||||
provides a built in mechanism to assist in managing a session concept.
|
|
||||||
This approach uses a single session cookie to identify the session to
|
|
||||||
the back end services.
|
|
||||||
|
|
||||||
By specifying a seesiondir keyword on the <jet> tag you enable the
|
|
||||||
session control functionality. Upon the delivery of a request that
|
|
||||||
does not contain a session 'token' a session token will be generated
|
|
||||||
for the request and a cookie will be returned in the reponse
|
|
||||||
containing the session token. Additionally, a session file is placed
|
|
||||||
into the directory named after the token. Captured session data will
|
|
||||||
become available to future requests coming into the server and made
|
|
||||||
available through the variable formats for the session.
|
|
||||||
|
|
||||||
The <set> tag will also have an additional scope value that can be
|
|
||||||
used to store the value in the session. This is scope="session".
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\chapter{Tag Reference}
|
|
||||||
|
|
||||||
This chapter will cover all the tags and parameters required to
|
|
||||||
perform the operations that JET provides.
|
|
||||||
|
|
||||||
\section{call}
|
|
||||||
|
|
||||||
Use the call tag to evoke an executable file from a jet script.
|
|
||||||
|
|
||||||
The atrributes are:
|
|
||||||
|
|
||||||
pgm
|
|
||||||
|
|
||||||
argn
|
|
||||||
|
|
||||||
name
|
|
||||||
|
|
||||||
input
|
|
||||||
|
|
||||||
error
|
|
||||||
|
|
||||||
The call tag is unscoped.
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
<call pgm="ls" arg1="-al" name="listing" />
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
will call the ls command with parameter -al and place the output into
|
|
||||||
a variable named 'listing'.
|
|
||||||
|
|
||||||
\section{comment}
|
|
||||||
|
|
||||||
Use the comment tag to create a section in the jet script that can be
|
|
||||||
used for making comments and is ignored by the jet reader.
|
|
||||||
|
|
||||||
The comments tag has no attributes.
|
|
||||||
|
|
||||||
\section{cookie}
|
|
||||||
|
|
||||||
Use the cookie tag to specify a cookie when using the CGI features
|
|
||||||
of JET.
|
|
||||||
|
|
||||||
\section{dump}
|
|
||||||
|
|
||||||
Use the dump tag to display the contents of all the global, local and
|
|
||||||
cgi cariables to a specified file.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
file
|
|
||||||
|
|
||||||
\section{expr}
|
|
||||||
|
|
||||||
\section{for}
|
|
||||||
|
|
||||||
Use the for tag to iterate a tag container for a logical number of
|
|
||||||
times.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
start
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
step
|
|
||||||
|
|
||||||
name - defines a name for the iterator that will be available within
|
|
||||||
the loop.
|
|
||||||
|
|
||||||
scope - defines the scope of the iterator for the loop.
|
|
||||||
|
|
||||||
\section{header}
|
|
||||||
|
|
||||||
Use the header tag to output a header prior to outputting the process
|
|
||||||
buffer to the requester.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
name
|
|
||||||
|
|
||||||
expr
|
|
||||||
|
|
||||||
value
|
|
||||||
|
|
||||||
container
|
|
||||||
|
|
||||||
\section{if/else}
|
|
||||||
|
|
||||||
Use the if tag to perform a conditional output on the tag container.
|
|
||||||
An optional else container provides alternate output in the event the
|
|
||||||
condition is not met.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
value1
|
|
||||||
|
|
||||||
value2
|
|
||||||
|
|
||||||
type
|
|
||||||
|
|
||||||
expr
|
|
||||||
|
|
||||||
\section{ifrow/else}
|
|
||||||
|
|
||||||
Use the ifrow tag to output the tag container if a row exists in the
|
|
||||||
mysql tag. An optional else container provides alternate output in the
|
|
||||||
event that there is no row for the sql result.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
sessionid
|
|
||||||
|
|
||||||
\section{include}
|
|
||||||
|
|
||||||
Use the include tag to include another content file at the location of
|
|
||||||
the include tag.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
file
|
|
||||||
|
|
||||||
\section{jet}
|
|
||||||
|
|
||||||
Use the jet tag to specify parameters for the jet parsing session and
|
|
||||||
to control the output options.
|
|
||||||
|
|
||||||
\section{mysql}
|
|
||||||
|
|
||||||
Use the mysql tag to specify parameters for connecting to a mysql
|
|
||||||
server. The container of the tag is where you can specify the sql
|
|
||||||
statement and method of processing the result output of the executed
|
|
||||||
sql statement. The mysql session created is valid only withon the
|
|
||||||
container of this tag.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
host
|
|
||||||
|
|
||||||
database
|
|
||||||
|
|
||||||
user
|
|
||||||
|
|
||||||
password
|
|
||||||
|
|
||||||
sessionid
|
|
||||||
|
|
||||||
\section{read}
|
|
||||||
|
|
||||||
Use the read tag to read the contents of a file contained on the local
|
|
||||||
file system into a variable for further output or processing.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
file
|
|
||||||
|
|
||||||
name
|
|
||||||
|
|
||||||
\section{set}
|
|
||||||
|
|
||||||
Use the set tag to store initialize a variable to a value contained in
|
|
||||||
a value attribute, the result of an expression (expr) attribute or the
|
|
||||||
contents of the set tag container.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
name
|
|
||||||
|
|
||||||
expr
|
|
||||||
|
|
||||||
value
|
|
||||||
|
|
||||||
container
|
|
||||||
|
|
||||||
scope
|
|
||||||
|
|
||||||
\section{sql}
|
|
||||||
|
|
||||||
Use the sql tag to specify an sql statement to run on the sql server
|
|
||||||
specified in the mysql tag.
|
|
||||||
|
|
||||||
As long as sql statements are executed within the same mysql
|
|
||||||
containing tag then the same mysql session is used for each sql
|
|
||||||
statement.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
sessionid
|
|
||||||
|
|
||||||
container
|
|
||||||
|
|
||||||
\section{stream}
|
|
||||||
|
|
||||||
Use stream tag to output data from the server without waiting for the
|
|
||||||
standard output buffering and processing of the JET script. This is
|
|
||||||
useful for outputting images and streams for audio and video without
|
|
||||||
the server having to load the whole thing into RAM first.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
file
|
|
||||||
|
|
||||||
\section{system}
|
|
||||||
|
|
||||||
Use the system tag to execute a bash shell command within the JET
|
|
||||||
script.
|
|
||||||
|
|
||||||
\section{tag}
|
|
||||||
|
|
||||||
Use the tag tag to define a new tag definition for use within the
|
|
||||||
script.
|
|
||||||
|
|
||||||
Tags are normally defined globally and can be used anywhere within the
|
|
||||||
script.
|
|
||||||
|
|
||||||
Tags can also be defined within other tags and the scope of those tags
|
|
||||||
is only within the defining tag's container. The enclosed tag
|
|
||||||
definition will not be available globally.
|
|
||||||
|
|
||||||
\section{until}
|
|
||||||
|
|
||||||
Use the until tag to process a container at least once and
|
|
||||||
continue to process the container until the specified condition is met.
|
|
||||||
|
|
||||||
Note that this tag always processes the container at least once.
|
|
||||||
|
|
||||||
Be careful not to create a never ending loop by not modifying any of
|
|
||||||
the condition parameters specified in the condition clause.
|
|
||||||
|
|
||||||
\section{while}
|
|
||||||
|
|
||||||
Use the while tag to process a container if the specified condition is
|
|
||||||
true.
|
|
||||||
|
|
||||||
Note that the container may not be processed if the condition is never
|
|
||||||
met.
|
|
||||||
|
|
||||||
Be careful not to create a never ending loop by not modifying any of
|
|
||||||
the condition parameters specified in the condition clause.
|
|
||||||
|
|
||||||
\section{whiledir}
|
|
||||||
|
|
||||||
Use the whiledir tag to loop a directory path to the container for
|
|
||||||
processing.
|
|
||||||
|
|
||||||
\section{whilerow}
|
|
||||||
|
|
||||||
Use the whilerow tag in combination with mysql and sql tags to provide
|
|
||||||
a container to process for each row retrieved by the sql statement.
|
|
||||||
|
|
||||||
\section{write}
|
|
||||||
|
|
||||||
Use the write tag to write data to the local file system.
|
|
||||||
|
|
||||||
\end{document}
|
|
16
Tag.cpp
16
Tag.cpp
@ -5,6 +5,7 @@
|
|||||||
#include "__sql.h"
|
#include "__sql.h"
|
||||||
#include "__whilerow.h"
|
#include "__whilerow.h"
|
||||||
#include "__comment.h"
|
#include "__comment.h"
|
||||||
|
#include "__exclude.h"
|
||||||
#include "__for.h"
|
#include "__for.h"
|
||||||
#include "__if.h"
|
#include "__if.h"
|
||||||
#include "__ifrow.h"
|
#include "__ifrow.h"
|
||||||
@ -134,7 +135,17 @@ namespace jet {
|
|||||||
coreutils::ZString tag;
|
coreutils::ZString tag;
|
||||||
char *start = in.getCursor();
|
char *start = in.getCursor();
|
||||||
while(!in.eod()) {
|
while(!in.eod()) {
|
||||||
if(in.startsWith("<")) {
|
if(in.ifNext("|>")) {
|
||||||
|
out.write("|>");
|
||||||
|
char ch = in.nextChar();
|
||||||
|
while(!in.ifNext("<|")) {
|
||||||
|
out.write(ch);
|
||||||
|
ch = in.nextChar();
|
||||||
|
}
|
||||||
|
out.write(ch);
|
||||||
|
out.write("<|");
|
||||||
|
continue;
|
||||||
|
} else if(in.startsWith("<")) {
|
||||||
if(ifTagName(in, "mysql")) {
|
if(ifTagName(in, "mysql")) {
|
||||||
__mysql _mysql(in, out, global, this, local);
|
__mysql _mysql(in, out, global, this, local);
|
||||||
continue;
|
continue;
|
||||||
@ -159,6 +170,9 @@ namespace jet {
|
|||||||
} else if(ifTagName(in, "include")) {
|
} else if(ifTagName(in, "include")) {
|
||||||
__include _include(in, out, global, this, local);
|
__include _include(in, out, global, this, local);
|
||||||
continue;
|
continue;
|
||||||
|
} else if(ifTagName(in, "exclude")) {
|
||||||
|
__exclude _exclude(in, out, global, this, local);
|
||||||
|
continue;
|
||||||
} else if(ifTagName(in, "jet")) {
|
} else if(ifTagName(in, "jet")) {
|
||||||
__jet _jet(in, out, global, this, local);
|
__jet _jet(in, out, global, this, local);
|
||||||
continue;
|
continue;
|
||||||
|
@ -20,8 +20,6 @@ namespace jet {
|
|||||||
// if last activity time is expired then ignore.
|
// if last activity time is expired then ignore.
|
||||||
// follow sessiontimeoutredirecturl.
|
// follow sessiontimeoutredirecturl.
|
||||||
// else
|
// else
|
||||||
// generate new session id.
|
|
||||||
// create session cookie in response.
|
|
||||||
unsigned char hashit[64];
|
unsigned char hashit[64];
|
||||||
unsigned char hash[SHA_DIGEST_LENGTH];
|
unsigned char hash[SHA_DIGEST_LENGTH];
|
||||||
char hashname[64];
|
char hashname[64];
|
||||||
|
@ -1,11 +1,30 @@
|
|||||||
*** CGI VARIABLES ***
|
*** CGI VARIABLES ***
|
||||||
*** GLOBAL VARIABLES ***
|
*** GLOBAL VARIABLES ***
|
||||||
|
=[xxx]
|
||||||
|
addition=[8]
|
||||||
|
complete=[ABCD;tohex]
|
||||||
|
division=[1.666666666667]
|
||||||
|
divisor=[8]
|
||||||
|
error=[64]
|
||||||
|
exprnumbers=[0123456789]
|
||||||
|
include=[yes]
|
||||||
|
ix=[1]
|
||||||
|
lefty=[01234]
|
||||||
|
modified1=[ABCD]
|
||||||
|
multiplication=[15]
|
||||||
|
nested=[64]
|
||||||
|
newname=[another container value]
|
||||||
|
noeval=[this is the value store in $[%name1].]
|
||||||
|
numbers=[0123456789]
|
||||||
|
subtraction=[2]
|
||||||
|
theexpr=[bcd]
|
||||||
|
thename=[this is the value store in .]
|
||||||
|
tohex=[tohex]
|
||||||
|
varname1=[vardata]
|
||||||
*** LOCAL VARIABLES ***
|
*** LOCAL VARIABLES ***
|
||||||
|
localvar=[This is a container set with '']
|
||||||
|
testinclude=[xThis is a container set with ''x]
|
||||||
*** KEYWORD VALUES ***
|
*** KEYWORD VALUES ***
|
||||||
cgi=[true]
|
file=[./testinclude.jet]
|
||||||
sessiondir=[.]
|
name1=[]
|
||||||
*** COOKIES ***
|
*** COOKIES ***
|
||||||
|
|
||||||
$[^session]
|
|
||||||
<dump file="./d=[]
|
|
||||||
session=[18fd56a83f]
|
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
<set name="nested" expr="(2*(4+4)/$[divisor])*32" />
|
<set name="nested" expr="(2*(4+4)/$[divisor])*32" />
|
||||||
<set name="error" value="$[nested]" />
|
<set name="error" value="$[nested]" />
|
||||||
$[nested]
|
$[nested]
|
||||||
|
|>This should be passed $[error] by the parser without parsing.
|
||||||
|
<set name="pass" value="not set" /><|
|
||||||
<set name="numbers">0123456789</set>
|
<set name="numbers">0123456789</set>
|
||||||
$[numbers]
|
$[numbers]
|
||||||
<set name="exprnumbers" expr="$[numbers]" />
|
<set name="exprnumbers" expr="$[numbers]" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user