The documentation is incomplete. The Vae Soli! team works hard to make it as exhaustive as possible with tons of useful examples and easy to understand explanations.
On top of that, we have decided to use our own tool to generate the documentation you read. This also takes time to fine-tune. Our goal is have better documentation, easier to read, easier to use, completely integrated with our site.
Even though NOT finalized, you can now link back to our documentation pages as we have decided once and for all about the structure of our documents and where they all reside on our server.
Thank you very much
The Vae Soli! team.
Generated by The Vae Soli! Documentor: Guide v. 1.3.0018 on 09-03-2015 09:36:39 (DD-MM-YYYY HH:mm:SS). This documentation is built with Vae Soli! functions and classes!
Assertions count: 15
Assertions successful: 13
Assertion failures: 2
LS_GLOSSARY_CLASS_PWH
: Define "LS" glossary (Pat Was Here)
VAESOLI_PATH
: Define the path where Vae Soli! is installed
VAESOLI_PLUGINS
: Define the path where plugins are located
LSV.functions.php
: Framework global functions
LSCursor.class.php
: Cursor class
LSGlossary
extends LSCursor
Generic services to handle a glossary (XML file)Name | Visibility | Type | Description |
---|---|---|---|
$szStorage |
public | string | Physical file that represents the glossary |
LSCursor
)Name | Type |
---|---|
IsDebug |
boolean |
IsReadonly |
boolean |
NoDataOnLoad |
boolean |
NoInclusionOnLoad |
boolean |
WithCDATA |
boolean |
aErrors |
array |
iFrom |
integer |
iMaxReccount |
integer |
iTo |
integer |
szComment |
NULL |
szDataSource |
NULL |
szDataSourceType |
integer |
szFilter |
string |
szName |
NULL |
szOrder |
NULL |
szOrderBy |
NULL |
szOrderDir |
string |
xCargo |
NULL |
__construct()
: Class constructor__construct( $szName,$szStorage )
Name | Type | Description |
---|---|---|
$szName |
string | Name of the glossary |
$szStorage |
string | Physical file name in which the glossary is stored |
(void)
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); if ( $oGlossary->Open() ) { echo "<p>There are ",$oGlossary->Reccount()," terms in the glossary</p>"; echo LSUnitTesting::assert( $oGlossary->IsOpen() , 'ASSERTION SUCCESSFUL: glossary successfully open' , 'ASSERTION FAILURE: cannot open glossary' , 'GuideAssert' ); $oGlossary->Close(); }
There are 1358 terms in the glossary
GuideAssert() ... ASSERTION SUCCESSFUL: glossary successfully open
1 assertions: 1 successful; 0 failed
Add()
: Adds a term in the glossaryAdd( $aEntry,$szDate,$szLupdate,$MustSave )
Name | Type | Description |
---|---|---|
$aEntry |
array | An associative array such as one returned by
the GetEntry() method |
$szDate |
string | Creation date of the entry. Optional. null
by default in which case the current date and
time is assumed. |
$szLupdate |
string | Last update date of the entry. Optional. null
by default. |
$MustSave |
boolean | Should the glossary be saved right after the
addition. Optional. true by default |
Add()
uses 4 parameters whereas the suggested limit is 3.
(bool) true
if $aEntry
added; false
otherwise
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); $oGlossary->Open(); $iCount = $oGlossary->Reccount(); $aEntry = array(); $aEntry['class' ] = 'IT'; $aEntry['keywords'] = ''; $aEntry['term' ] = 'MD5'; $aEntry['value' ] = 'New value'; $aEntry['lang' ] = 'en'; if ( $bAdded = $oGlossary->Add( $aEntry,'20140806120100',null,false ) ) { var_dump( $aEntry = $oGlossary->getEntry() ); } echo LSUnitTesting::assert( $bAdded && $aEntry['term'] === 'MD5' && $aEntry['value'] === 'New value' && $oGlossary->Reccount() === ( $iCount + 1 ) , 'ASSERTION SUCCESSFUL: new term added' , 'ASSERTION FAILURE: new term NOT added' , 'GuideAssert' );
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20140806120100' (length=14) 'lupdate' => string '' (length=0) 'term' => string 'MD5' (length=3) 'value' => string 'New value' (length=9) 'lang' => string 'en' (length=2) 'id' => string '1fef9118-1bbf-49f9-9735-25ba3d5e4bfb' (length=36)GuideAssert() ... ASSERTION SUCCESSFUL: new term added
1 assertions: 1 successful; 0 failed
Browse()
: Browses entries of the glossary
The Browse()
method is provided for backward compatibility reasons.
It should NOT be used at all. Please notice that it no longer does
anything worth it.
Browse( $szTerm,$szClass )
Name | Type | Description |
---|---|---|
$szTerm |
string | Starting term of the browse ('like' behavior) |
$szClass |
string | Class of the terms to browse. Optional.
null by default. |
(void)
WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}
) or with GuideAssert()
function calls in exec constructs ({*exec LSUnitTesting::assert(...); *}
).
Discard()
: Removes an entry from the glossaryDiscard( $xID,$MustSave )
Name | Type | Description |
---|---|---|
$xID |
mixed | ID of the record to remove or an
associative array such as one returned by
the GetEntry() method. |
$MustSave |
boolean | Should the glossary be saved right after the
replacement. Optional. true by default |
(bool) true
if removal successful; false
otherwise
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); $oGlossary->Open(); $iCount = $oGlossary->Reccount(); $aEntry = array(); $aEntry['class' ] = 'IT'; $aEntry['keywords'] = ''; $aEntry['term' ] = 'MD5'; $aEntry['value' ] = 'New dummy value'; $aEntry['lang' ] = 'en'; if ( $bAdded = $oGlossary->Add( $aEntry,'20140806120100',null,false ) ) { echo "<p>New entry added:</p>"; var_dump( $aEntry = $oGlossary->getEntry() ); } if ( $bRemoved = $oGlossary->Remove( $aEntry,false ) ) { echo "<p>New entry removed and glossary pointer points to:</p>"; var_dump( $aEntry = $oGlossary->getEntry() ); } echo LSUnitTesting::assert( $oGlossary->Reccount() === $iCount , 'ASSERTION SUCCESSFUL: new term removed' , 'ASSERTION FAILURE: new term NOT removed' , 'GuideAssert' );
New entry added:
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20140806120100' (length=14) 'lupdate' => string '' (length=0) 'term' => string 'MD5' (length=3) 'value' => string 'New dummy value' (length=15) 'lang' => string 'en' (length=2) 'id' => string '33b56a65-a715-497e-a58f-2467fa48ac23' (length=36)New entry removed and glossary pointer points to:
array (size=8) 'class' => string 'GEN' (length=3) 'keywords' => string '' (length=0) 'date' => string '20150128133328' (length=14) 'lupdate' => string '' (length=0) 'term' => string 'PFH' (length=3) 'value' => string 'Putain de Facteur Humain' (length=24) 'lang' => string 'fr' (length=2) 'id' => string '400fc9c4-add6-4ed6-9673-b5d81c60523a' (length=36)GuideAssert() ... ASSERTION SUCCESSFUL: new term removed
1 assertions: 1 successful; 0 failed
Find()
: Search a term in the glossary
So far (06-08-14 07:13:51) the $szClass
parameter is disregarded by
the method. Try to avoid using this method as much as possible.
Head for the FindFirst()
and FindNext()
methods instead.
Find( $szTerm,$szClass )
Name | Type | Description |
---|---|---|
$szTerm |
string | Term to look for |
$szClass |
string | Class of the term to look for. Optional.
null by default. |
(bool) true
if $szTerm
found; false
otherwise
WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}
) or with GuideAssert()
function calls in exec constructs ({*exec LSUnitTesting::assert(...); *}
).
FindByID()
: Find a term in the glossary by its ID
FindByID()
acts as of the current position in the glossary.
To make sure that the full glossary is scanned correctly, please issue
a GoTop()
method call BEFORE FindByID()
.
FindByID( $szID )
Name | Type | Description |
---|---|---|
$szID |
string | ID of the term to locate |
(boolean) true
if term of $szID
id found; false
if
not
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); $oGlossary->Open(); if ( $bFound = $oGlossary->FindByID( '6690f643-440d-4f4d-9126-b779eb62c348' ) ) { var_dump( $aEntry = $oGlossary->GetEntry() ); } echo LSUnitTesting::assert( $bFound && isset( $aEntry['value'] ) && $aEntry['value'] === 'Zeroconf Working Group' , 'ASSERTION SUCCESSFUL: ZWG successfully found' , 'ASSERTION FAILURE: ZWG NOT found' , 'GuideAssert' );
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20140102' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'ZWG' (length=3) 'value' => string 'Zeroconf Working Group' (length=22) 'lang' => string 'en' (length=2) 'id' => string '6690f643-440d-4f4d-9126-b779eb62c348' (length=36)GuideAssert() ... ASSERTION SUCCESSFUL: ZWG successfully found
1 assertions: 1 successful; 0 failed
FindByTerm()
: Find a term in the glossary
FindByTerm()
acts as of the current position in the glossary.
To make sure that the full glossary is scanned correctly, please issue
a GoTop()
method call BEFORE FindByTerm()
.
FindByTerm( $szTerm )
Name | Type | Description |
---|---|---|
$szTerm |
string | Term to look for |
(boolean) true
if $szTerm
found; false
if not
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); $oGlossary->Open(); if ( $bFound = $oGlossary->FindByTerm( 'ZWG' ) ) { var_dump( $aEntry = $oGlossary->GetEntry()); } echo LSUnitTesting::assert( $bFound && isset( $aEntry['value'] ) && $aEntry['value'] === 'Zeroconf Working Group' , 'ASSERTION SUCCESSFUL: ZWG successfully found' , 'ASSERTION FAILURE: ZWG NOT found' , 'GuideAssert' ); if ( $bFound = $oGlossary->FindByTerm( '1NF' ) ) { var_dump( $aEntry = $oGlossary->GetEntry()); } echo LSUnitTesting::assert( ! $bFound , 'ASSERTION SUCCESSFUL: 1NF not found, which was expected' , 'ASSERTION FAILURE: 1NF found, which is a problem' , 'GuideAssert' ); $oGlossary->GoTop(); if ( $bFound = $oGlossary->FindByTerm( '1NF' ) ) { var_dump( $aEntry = $oGlossary->GetEntry()); } echo LSUnitTesting::assert( $bFound && isset( $aEntry['value'] ) && $aEntry['value'] === 'First Normal Form' , 'ASSERTION SUCCESSFUL: 1NF finally found' , 'ASSERTION FAILURE: 1NF not found, which is weird' , 'GuideAssert' ); // Find 1st entry for AAA if ( $bFound = $oGlossary->FindByTerm( 'AAA' ) ) { $oGlossary->Skip(); // Find 2nd entry for AAA if ( $bFound = $oGlossary->FindByTerm( 'AAA' ) ) { var_dump( $aEntry = $oGlossary->GetEntry()); echo LSUnitTesting::assert( $bFound && isset( $aEntry['value'] ) && $aEntry['value'] === 'Authentication, Authorization and Accounting' , 'ASSERTION SUCCESSFUL: 2nd instance of AAA found' , 'ASSERTION FAILURE: 2nd instance of AAA NOT found' , 'GuideAssert' ); } }
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20140102' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'ZWG' (length=3) 'value' => string 'Zeroconf Working Group' (length=22) 'lang' => string 'en' (length=2) 'id' => string '6690f643-440d-4f4d-9126-b779eb62c348' (length=36)GuideAssert() ... ASSERTION SUCCESSFUL: ZWG successfully found
GuideAssert() ... ASSERTION SUCCESSFUL: 1NF not found, which was expected
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20140722' (length=8) 'lupdate' => string '' (length=0) 'term' => string '1NF' (length=3) 'value' => string 'First Normal Form' (length=17) 'lang' => string 'en' (length=2) 'id' => string '3752c229-eab5-4437-ab57-bb220c9e5ed1' (length=36)GuideAssert() ... ASSERTION SUCCESSFUL: 1NF finally found
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20061229' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Authentication, Authorization and Accounting' (length=44) 'lang' => string 'en' (length=2) 'id' => string 'bb5f07c2-7571-4475-840e-ac4fff763f26' (length=36)GuideAssert() ... ASSERTION SUCCESSFUL: 2nd instance of AAA found
4 assertions: 4 successful; 0 failed
FindFirst()
: Find the first occurrence of a term in the glossaryFindFirst( $szTerm,$szClass,$bExact )
Name | Type | Description |
---|---|---|
$szTerm |
string | Term to look for in the glossary. |
$szClass |
string | Class of the term to look for. Optional. null
by default. NOT USED AT THE MOMENT: 05-08-14 16:54:01 |
$bExact |
boolean | Exact match required. Optional. true by default |
(bool) true
if $szTerm
found; false
otherwise
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); if ( $oGlossary->FindFirst( 'AAA' ) ) { var_dump( $aEntry = $oGlossary->GetEntry() ); $i = 0; while ( $oGlossary->FindNext() && $i++ < 3 ) { var_dump( $aEntry = $oGlossary->GetEntry() ); } } echo LSUnitTesting::assert( $oGlossary->Reccount() >= 2 , 'ASSERTION SUCCESSFUL: considered successful' , 'ASSERTION FAILURE: considered failed' , 'GuideAssert' ); // No exact match would make it possible to query the glossary // for terms that START with a given value (all terms starting with 'M' // in the example here below) if ( $oGlossary->FindFirst( $szLetter = 'M',null,false ) ) { echo "<p>",$oGlossary->Reccount()," entries found starting with '",$szLetter,"'</p>"; } echo LSUnitTesting::assert( $oGlossary->Reccount() >= 40 , 'ASSERTION SUCCESSFUL: \'M\' terms lookup considered successful', 'ASSERTION FAILURE: \'M\' terms lookup considered failed' , 'GuideAssert' );
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20080229' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Anywhere, Anything, Anytime' (length=27) 'lang' => string 'en' (length=2) 'id' => string 'bf3d9b4d-aeca-49e1-9df1-7beddfe3689c' (length=36)array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20061229' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Authentication, Authorization and Accounting' (length=44) 'lang' => string 'en' (length=2) 'id' => string 'bb5f07c2-7571-4475-840e-ac4fff763f26' (length=36)array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20150125230721' (length=14) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Autopsies And Analysis' (length=22) 'lang' => string 'en' (length=2) 'id' => string 'c88af5d2-8b09-4f18-8492-16f76c4d9e3b' (length=36)GuideAssert() ... ASSERTION SUCCESSFUL: considered successful
60 entries found starting with 'M'
GuideAssert() ... ASSERTION SUCCESSFUL: 'M' terms lookup considered successful
2 assertions: 2 successful; 0 failed
FindNext()
: Find the next occurrence of a termFindNext()
None
(bool) true
if $szTerm
initiated by the most
immediate call of FindFirst()
is found;
false
otherwise
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); if ( $oGlossary->FindFirst( 'AAA' ) ) { var_dump( $aEntry = $oGlossary->GetEntry()); $i = 0; while ( $oGlossary->FindNext() && $i++ < 3 ) { var_dump( $aEntry = $oGlossary->GetEntry()); } echo LSUnitTesting::assert( $aEntry['id'] === 'bb5f07c2-7571-4475-840e-ac4fff763f26' , 'ASSERTION SUCCESSFUL: considered successful' , 'ASSERTION FAILURE: considered failed' , 'GuideAssert' ); }
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20080229' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Anywhere, Anything, Anytime' (length=27) 'lang' => string 'en' (length=2) 'id' => string 'bf3d9b4d-aeca-49e1-9df1-7beddfe3689c' (length=36)array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20061229' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Authentication, Authorization and Accounting' (length=44) 'lang' => string 'en' (length=2) 'id' => string 'bb5f07c2-7571-4475-840e-ac4fff763f26' (length=36)array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20150125230721' (length=14) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Autopsies And Analysis' (length=22) 'lang' => string 'en' (length=2) 'id' => string 'c88af5d2-8b09-4f18-8492-16f76c4d9e3b' (length=36)GuideAssert() ... ASSERTION FAILURE: considered failed
1 assertions: 0 successful; 1 failed
GetEntry()
: Get the current entry of the glossaryGetEntry()
None
(bool) true
if $szTerm found; false
otherwise
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); if ( $oGlossary->FindFirst( 'AAA' ) ) { var_dump( $aEntry = $oGlossary->GetEntry()); $i = 0; while ( $oGlossary->FindNext() && $i++ < 3 ) { var_dump( $aEntry = $oGlossary->GetEntry()); } echo LSUnitTesting::assert( $aEntry['id'] === 'bb5f07c2-7571-4475-840e-ac4fff763f26' , 'ASSERTION SUCCESSFUL: considered successful' , 'ASSERTION FAILURE: considered failed' , 'GuideAssert' ); }
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20080229' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Anywhere, Anything, Anytime' (length=27) 'lang' => string 'en' (length=2) 'id' => string 'bf3d9b4d-aeca-49e1-9df1-7beddfe3689c' (length=36)array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20061229' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Authentication, Authorization and Accounting' (length=44) 'lang' => string 'en' (length=2) 'id' => string 'bb5f07c2-7571-4475-840e-ac4fff763f26' (length=36)array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20150125230721' (length=14) 'lupdate' => string '' (length=0) 'term' => string 'AAA' (length=3) 'value' => string 'Autopsies And Analysis' (length=22) 'lang' => string 'en' (length=2) 'id' => string 'c88af5d2-8b09-4f18-8492-16f76c4d9e3b' (length=36)GuideAssert() ... ASSERTION FAILURE: considered failed
1 assertions: 0 successful; 1 failed
Modify()
: Replaces an entry in the glossaryModify( $aEntry,$szDate,$szLupdate,$MustSave )
Name | Type | Description |
---|---|---|
$aEntry |
array | An associative array such as one returned by
the GetEntry() method |
$szDate |
string | Creation date of the entry. Optional. null
by default. |
$szLupdate |
string | Last update date of the entry. Optional. null
by default. |
$MustSave |
boolean | Should the glossary be saved right after the
replacement. Optional. true by default |
Modify()
uses 4 parameters whereas the suggested limit is 3.
(bool) true
if replacement successful; false
otherwise
$oGlossary = new LSGlossary( 'Vae Soli! Glossary',FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); $oGlossary->Open(); if ( $bFound = $oGlossary->FindByTerm( 'MD5' ) ) { var_dump( $aEntry = $oGlossary->getEntry() ); $szOldValue = $aEntry['value']; $aEntry['value'] = 'New value'; $oGlossary->Modify( $aEntry,null,$szNow = date('YmdHis'),false ); var_dump( $aNewEntry = $oGlossary->getEntry() ); echo LSUnitTesting::assert( $aNewEntry['value'] === 'New value' && $aNewEntry['lupdate'] === $szNow , 'ASSERTION SUCCESSFUL: value successfully replaced' , 'ASSERTION FAILURE: incorrect replacement' , 'GuideAssert' ); }
array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20070102' (length=8) 'lupdate' => string '' (length=0) 'term' => string 'MD5' (length=3) 'value' => string 'Message Digest 5: it is a secure hashing function that converts a data stream into a digest of fixed size. This algorithm has been placed in the public domain by RSA Data Security, Inc.' (length=324) 'lang' => string 'en' (length=2) 'id' => string 'fb42ed67-066d-464f-8079-34a8955b552c' (length=36)array (size=8) 'class' => string 'IT' (length=2) 'keywords' => string '' (length=0) 'date' => string '20070102' (length=8) 'lupdate' => string '20150309093639' (length=14) 'term' => string 'MD5' (length=3) 'value' => string 'New value' (length=9) 'lang' => string 'en' (length=2) 'id' => string 'fb42ed67-066d-464f-8079-34a8955b552c' (length=36)GuideAssert() ... ASSERTION SUCCESSFUL: value successfully replaced
1 assertions: 1 successful; 0 failed
Save()
: Saves the glossarySave()
None
(void) The glossary will be saved IF it is dirty
true === true
successful
1 assertions: 1 successful; 0 failed
TableOfContents()
: Returns an array of terms 1st-letters
As of version 7.0.0001
the original Index()
method
has been renamed TableOfContents()
. This has a potential
impact on your existing code but there was ABSOLUTELY no other way
for us.
TableOfContents()
None
(array) An array of terms 1st-letters
$oGlossary = new LSGlossary( 'Vae Soli! Glossary', FIL_ResolveRoot( '/vaesoli/resources/XML/glossary.xml' ) ); $aKeys = $oGlossary->TableOfContents(); if ( ksort( $aKeys ) ) // Sort keys { echo "<p>Presentation as a list:</p>\n"; echo "<ol>"; // Start a list foreach ( $aKeys as $c => $iCount ) { // Letter + count + link to real-time glossary echo "<li><a href=\"http://www.latosensu.be/glossary/{$c}*\">{$c}</a> … {$iCount} " . ( $iCount > 1 ? 'entries' : 'entry' ) . "</li>\n"; } echo "</ol>"; echo "<p>Presentation as row of 1st letters:</p>\n"; echo "<p>"; foreach ( $aKeys as $c => $iCount ) { // Letter + count + link to real-time glossary echo "<a href=\"http://www.latosensu.be/glossary/{$c}*\">{$c}</a> "; } echo "</p>"; } echo LSUnitTesting::assert( isset( $aKeys['K'] ) && isset( $aKeys['L'] ) && isset( $aKeys['M'] ), 'ASSERTION SUCCESSFUL: considered successful' , 'ASSERTION FAILURE: considered failed' , 'GuideAssert' );
Presentation as a list:
- ( … 1 entry
- A … 121 entries
- B … 55 entries
- C … 125 entries
- D … 85 entries
- E … 50 entries
- F … 60 entries
- G … 21 entries
- H … 37 entries
- I … 62 entries
- J … 17 entries
- K … 11 entries
- L … 25 entries
- M … 60 entries
- N … 9 entries
- O … 47 entries
- P … 104 entries
- Q … 8 entries
- R … 88 entries
- S … 176 entries
- T … 70 entries
- U … 32 entries
- V … 18 entries
- W … 55 entries
- X … 7 entries
- Y … 2 entries
- Z … 4 entries
- p … 1 entry
- z … 1 entry
- 1 … 1 entry
- 3 … 1 entry
- 4 … 3 entries
- 7 … 1 entry
Presentation as row of 1st letters:
( A B C D E F G H I J K L M N O P Q R S T U V W X Y Z p z 1 3 4 7
GuideAssert() ... ASSERTION SUCCESSFUL: considered successful
1 assertions: 1 successful; 0 failed