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 "__whilerow.h"
|
||||
#include "__comment.h"
|
||||
#include "__exclude.h"
|
||||
#include "__for.h"
|
||||
#include "__if.h"
|
||||
#include "__ifrow.h"
|
||||
@ -134,7 +135,17 @@ namespace jet {
|
||||
coreutils::ZString tag;
|
||||
char *start = in.getCursor();
|
||||
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")) {
|
||||
__mysql _mysql(in, out, global, this, local);
|
||||
continue;
|
||||
@ -159,6 +170,9 @@ namespace jet {
|
||||
} else if(ifTagName(in, "include")) {
|
||||
__include _include(in, out, global, this, local);
|
||||
continue;
|
||||
} else if(ifTagName(in, "exclude")) {
|
||||
__exclude _exclude(in, out, global, this, local);
|
||||
continue;
|
||||
} else if(ifTagName(in, "jet")) {
|
||||
__jet _jet(in, out, global, this, local);
|
||||
continue;
|
||||
|
@ -20,8 +20,6 @@ namespace jet {
|
||||
// if last activity time is expired then ignore.
|
||||
// follow sessiontimeoutredirecturl.
|
||||
// else
|
||||
// generate new session id.
|
||||
// create session cookie in response.
|
||||
unsigned char hashit[64];
|
||||
unsigned char hash[SHA_DIGEST_LENGTH];
|
||||
char hashname[64];
|
||||
@ -29,7 +27,7 @@ namespace jet {
|
||||
SHA1(hashit, strlen((char *)hashit), hash);
|
||||
sprintf(hashname, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
|
||||
hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7], hash[8], hash[9],
|
||||
hash[10], hash[11], hash[12], hash[13], hash[14], hash[15], hash[16], hash[17], hash[18], hash[19]);
|
||||
hash[10], hash[11], hash[12], hash[13], hash[14], hash[15], hash[16], hash[17], hash[18], hash[19]);
|
||||
coreutils::ZString sessionCookie(hashname);
|
||||
global.headers["Set-Cookie"] << "session=" << sessionCookie;
|
||||
if(keywordDefined("sessiontimeout")) {
|
||||
|
@ -1,11 +1,30 @@
|
||||
*** CGI 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 ***
|
||||
localvar=[This is a container set with '']
|
||||
testinclude=[xThis is a container set with ''x]
|
||||
*** KEYWORD VALUES ***
|
||||
cgi=[true]
|
||||
sessiondir=[.]
|
||||
file=[./testinclude.jet]
|
||||
name1=[]
|
||||
*** COOKIES ***
|
||||
|
||||
$[^session]
|
||||
<dump file="./d=[]
|
||||
session=[18fd56a83f]
|
||||
|
@ -25,6 +25,8 @@
|
||||
<set name="nested" expr="(2*(4+4)/$[divisor])*32" />
|
||||
<set name="error" value="$[nested]" />
|
||||
$[nested]
|
||||
|>This should be passed $[error] by the parser without parsing.
|
||||
<set name="pass" value="not set" /><|
|
||||
<set name="numbers">0123456789</set>
|
||||
$[numbers]
|
||||
<set name="exprnumbers" expr="$[numbers]" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user