Niouzes

D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php:3658:
object(LogicException)[63]
  protected 'message' => string 'Class LSContentsCalendar could not be loaded' (length=44)
  private 'string' (Exception) => string '' (length=0)
  protected 'code' => int 0
  protected 'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
  protected 'line' => int 3587
  private 'trace' (Exception) => 
    array (size=15)
      0 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 3587
          'function' => string 'spl_autoload' (length=12)
          'args' => 
            array (size=1)
              ...
      1 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 3262
          'function' => string 'EmergeIsland' (length=12)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=6)
              ...
      2 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 2756
          'function' => string 'EmergeIslands' (length=13)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=5)
              ...
      3 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 2994
          'function' => string 'EmergeArchipelagosFromParent' (length=28)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=3)
              ...
      4 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5928
          'function' => string 'EmergeArchipelagos' (length=18)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=2)
              ...
      5 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\template\vaesoli.html' (length=58)
          'line' => int 89
          'function' => string 'Land' (length=4)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      6 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 6110
          'args' => 
            array (size=1)
              ...
          'function' => string 'include' (length=7)
      7 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 6053
          'function' => string 'XInclude' (length=8)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      8 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5828
          'function' => string 'IncludeTemplate' (length=15)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      9 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5580
          'function' => string 'UseTemplate' (length=11)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      10 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 3282
          'function' => string 'RenderXML' (length=9)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      11 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 2082
          'function' => string 'StartPage' (length=9)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      12 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSApplication.class.php' (length=76)
          'line' => int 814
          'function' => string 'Render' (length=6)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=0)
              ...
      13 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\master.php' (length=47)
          'line' => int 8
          'function' => string 'Run' (length=3)
          'class' => string 'LSApplication' (length=13)
          'type' => string '->' (length=2)
          'args' => 
            array (size=0)
              ...
      14 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\documentation\documentation-vaesoli-code-source.php' (length=88)
          'line' => int 1
          'args' => 
            array (size=1)
              ...
          'function' => string 'include' (length=7)
  private 'previous' (Exception) => null
  public 'xdebug_message' => string '<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> LogicException: Class LSContentsCalendar could not be loaded in D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php on line <i>3587</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory'... (length=6279)
D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php:3658:
object(LogicException)[81]
  protected 'message' => string 'Class LSContentsCitation could not be loaded' (length=44)
  private 'string' (Exception) => string '' (length=0)
  protected 'code' => int 0
  protected 'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
  protected 'line' => int 3587
  private 'trace' (Exception) => 
    array (size=15)
      0 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 3587
          'function' => string 'spl_autoload' (length=12)
          'args' => 
            array (size=1)
              ...
      1 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 3262
          'function' => string 'EmergeIsland' (length=12)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=6)
              ...
      2 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 2756
          'function' => string 'EmergeIslands' (length=13)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=5)
              ...
      3 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 2994
          'function' => string 'EmergeArchipelagosFromParent' (length=28)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=3)
              ...
      4 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5928
          'function' => string 'EmergeArchipelagos' (length=18)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=2)
              ...
      5 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\template\vaesoli.html' (length=58)
          'line' => int 89
          'function' => string 'Land' (length=4)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      6 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 6110
          'args' => 
            array (size=1)
              ...
          'function' => string 'include' (length=7)
      7 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 6053
          'function' => string 'XInclude' (length=8)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      8 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5828
          'function' => string 'IncludeTemplate' (length=15)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      9 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5580
          'function' => string 'UseTemplate' (length=11)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      10 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 3282
          'function' => string 'RenderXML' (length=9)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      11 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 2082
          'function' => string 'StartPage' (length=9)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      12 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSApplication.class.php' (length=76)
          'line' => int 814
          'function' => string 'Render' (length=6)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=0)
              ...
      13 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\master.php' (length=47)
          'line' => int 8
          'function' => string 'Run' (length=3)
          'class' => string 'LSApplication' (length=13)
          'type' => string '->' (length=2)
          'args' => 
            array (size=0)
              ...
      14 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\documentation\documentation-vaesoli-code-source.php' (length=88)
          'line' => int 1
          'args' => 
            array (size=1)
              ...
          'function' => string 'include' (length=7)
  private 'previous' (Exception) => null
  public 'xdebug_message' => string '<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> LogicException: Class LSContentsCitation could not be loaded in D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php on line <i>3587</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory'... (length=6279)

Attention

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.

2019-06-18 à 01:34:06

Table Of Contents

  1. FOUNDATION (functions) (01/04/2015)
  2. LSAction (class) (01/04/2015)
  3. LSAddress (class) (01/04/2015)
  4. LSAdministrativeArea (class) (01/04/2015)
  5. LSApplication (class) (14/10/2013)
  6. LSArray (class) (14/10/2013)
  7. LSArticle (class) (18/02/2014)
  8. LSAssertion (class) (14/10/2013)
  9. LSAudience (class) (18/02/2014)
  10. AUTOLOAD (function) (21/04/2014)
  11. LSAutoReference (class) (14/10/2013)
  12. LSBag (class) (14/10/2013)
  13. LSBBCodes (class) (10/06/2014)
  14. LSBrowser (class) (14/10/2013)
  15. LSCache (class) (14/10/2013)
  16. LSCalculator (class) (14/10/2013)
  17. LSCalendar (class) (14/10/2013)
  18. LSCameraSnapshot (class) (14/10/2013)
  19. LSCitation (class) (14/10/2013)
  20. LSClass (class) (14/10/2013)
  21. LSCode (class) ()
  22. Colors (functions) (18/06/2019)
  23. LSContactForm (class) (14/10/2013)
  24. LSContainer (class) (14/10/2013)
  25. LSContents (class) (14/10/2013)
  26. LSContentsAccounts (class) (14/10/2013)
  27. LSContentsArticles (class) (14/10/2013)
  28. LSContentsAtomicClock (class) (14/10/2013)
  29. LSContentsBusinessCoordinates (class) (14/10/2013)
  30. LSContentsBusinessOff (class) (14/10/2013)
  31. LSContentsBusinessOpeningHours (class) (14/10/2013)
  32. LSContentsBreadcrumb (class) (14/10/2013)
  33. LSContentsCalendar (class) (14/10/2013)
  34. LSContentsCatalogue (class) (14/10/2013)
  35. LSContentsCharter (class) (18/02/2014)
  36. LSContentsCitation (class) (14/10/2013)
  37. LSContentsClock (class) (14/10/2013)
  38. LSContentsComments (class) (14/10/2013)
  39. LSContentsCookieUsage (class) (14/10/2013)
  40. LSContentsCountdown (class) (14/10/2013)
  41. LSContentsDatetime (class) (14/10/2013)
  42. LSContentsHeartbeat (class) (14/10/2013)
  43. LSContentsIFrame (class) (14/10/2013)
  44. LSContentsImageGallery (class) (14/10/2013)
  45. LSContentsLanguageSwitchers (class) (14/10/2013)
  46. LSContentsLegal (class) (18/02/2014)
  47. LSContentsMicronews (class) (14/10/2013)
  48. LSContentsMyAccount (class) (14/10/2013)
  49. LSContentsPaymentOptions (class) (14/10/2013)
  50. LSContentsPinboard (class) (14/10/2013)
  51. LSContentsRememberPassword (class) (14/10/2013)
  52. LSContentsRSS (class) (14/10/2013)
  53. LSContentsSiteManager (class) (14/10/2013)
  54. LSContentsSitemap (class) (14/10/2013)
  55. LSContentsShare (class) (14/10/2013)
  56. LSContentsStopwatch (class) (14/10/2013)
  57. LSContentsTagCloud (class) (14/10/2013)
  58. LSContentsTodosOnPage (class) (14/10/2013)
  59. LSContentsW3C (class) (14/10/2013)
  60. LSContentsWeather (class) (14/10/2013)
  61. LSControl (class) (14/10/2013)
  62. LSCreativeWork (class) (18/02/2014)
  63. LSCursor (class) (09/03/2015)
  64. LSCustomer (class) (14/10/2013)
  65. LSDataEnvironment (class) (14/10/2013)
  66. Dates (functions) (01/04/2015)
  67. LSDate (class) (14/10/2013)
  68. LSDictionary (class) (14/10/2013)
  69. LSDom, LSDomNode and LSXPath (class) (30/04/2014)
  70. LSErrors and LSError (classes) (14/10/2013)
  71. LSException (class) (16/10/2013)
  72. LSExplorer (class) (14/10/2013)
  73. LSFieldset (class) (14/10/2013)
  74. LSFile (class) (14/10/2013)
  75. LSFileProperties (class) (14/10/2013)
  76. Files (functions) (01/04/2015)
  77. Finance (functions) (01/04/2015)
  78. LSFootnotes (class) (22/02/2014)
  79. LSForm (class) (09/06/2014)
  80. LSFunction (class) (14/10/2013)
  81. LSGeorama (class) (24/10/2013)
  82. LSGeoramaVar (class) (24/10/2013)
  83. LSGlossary (class) (09/03/2015)
  84. LSGroup (class) (14/10/2013)
  85. HTML (functions) (01/04/2015)
  86. LSHttp (class) (14/10/2013)
  87. HTTP (functions) (01/04/2015)
  88. LSImageGallery (class) (14/10/2013)
  89. Images (functions) (01/04/2015)
  90. LSInput (class) (26/04/2014)
  91. IP (functions) (01/04/2015)
  92. LSIslandAbstract (14/10/2013)
  93. LSIslandFormAbstract (class) (14/10/2013)
  94. LSLabel (class) (14/10/2013)
  95. LSLanguageSwitchers (class) (14/10/2013)
  96. LSLatin (class) (14/10/2013)
  97. LSLegalPerson (class) (14/10/2013)
  98. LSLinkedList (class) (14/10/2013)
  99. LSList (class) (14/10/2013)
  100. Mails (functions) (01/04/2015)
  101. LSMap (class) (14/10/2013)
  102. Math (functions) (01/04/2015)
  103. LSMicronews (class) (18/02/2014)
  104. Miscellaneous (functions) (01/04/2015)
  105. LSModuleAbstract (class) (14/10/2013)
  106. LSNaturalPerson (class) (14/10/2013)
  107. LSNewsArticle (class) (18/02/2014)
  108. LSNote (class) (14/10/2013)
  109. LSMotherNature (class) (16/10/2013)
  110. LSPage (class) (18/02/2014)
  111. LSParameter (class) (14/10/2013)
  112. LSPaymentOptions (class) (14/10/2013)
  113. LSPeopleAudience (class) (18/02/2014)
  114. LSPerson (class) (14/10/2013)
  115. LSPlace (class) (18/02/2014)
  116. LSProperty (class) (14/10/2013)
  117. LSPublication (class) (14/10/2013)
  118. LSRequirement (class) (14/10/2013)
  119. LSReturn (class) (24/10/2013)
  120. LSRisk (class) (14/10/2013)
  121. LSSentanaiAbstract (14/10/2013)
  122. LSServiceMessage (class) (14/10/2013)
  123. LSSession (class) (14/10/2013)
  124. LSSiteManager (class) (14/10/2013)
  125. LSSitemap (class) (14/10/2013)
  126. LSSockets (class) (14/10/2013)
  127. LSSoftwareApplication (class) (18/02/2014)
  128. LSSource (class) (14/10/2013)
  129. Strings (functions) (31/07/2016)
  130. LSSupplier (class) (14/10/2013)
  131. System (functions) (01/04/2015)
  132. LSTag (class) (21/04/2014)
  133. LSTagCloud (class) (14/10/2013)
  134. LSTechArticle (class) (18/02/2014)
  135. LSThing (class) (18/02/2014)
  136. LSTimeline (class) (14/10/2013)
  137. LSTimer (class) (16/10/2013)
  138. LSTracer (class) (09/03/2015)
  139. LSUnitTesting (class) (14/10/2013)
  140. URL (functions) (01/04/2015)
  141. LSUser (class) (09/03/2015)
  142. LSUserMgr (class) (14/10/2013)
  143. LSVaesoli (class) (09/06/2014)
  144. LSVersion (class) (14/10/2013)
  145. LSWebSite (class) (14/10/2013)
  146. LSWidget (class) (14/10/2013)
  147. LSWireTransferForm (class) (14/10/2013)
  148. LSXMLSitemap (class) (14/10/2013)
  149. XML (functions) (01/04/2015)

LSGeorama.class.php

Generated by The Vae Soli! Documentor: Guide v. 1.3.0018 on 24-10-2013 11:36:10 (DD-MM-YYYY HH:mm:SS). This documentation is built with Vae Soli! functions and classes!

File Properties

C:\websites\vaesoli.org\www\httpdocs/vaesoli/include/LSGeorama.class.phpC:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.phpapplication/force-downloadC:\websites\vaesoli.org\www\httpdocs\vaesoli\include207431 bytes19/10/2013 09:08:2319/10/2013 11:24:2419/10/2013 11:24:24

Compliance

Assertions count: 7

Assertions successful: 7

Assertion failures: 0

Early Warning

LSGeorama.class.php exceeds 51200 bytes. We suggest this file got broken down in smaller chunks!

LSGeorama.class.php contains 3492 lines of code, which exceeds the suggested limit of 1024 lines. We suggest this file got broken down in smaller chunks!

Manifest Constants

LS_GEORAMA_CLASS_PWH: Define "LS" Georama (Pat Was Here)

VAESOLI_PATH: Define the path where Vae Soli! is installed

VAESOLI_PLUGINS: Define the path where plugins are located

CODE_ORIGIN: Tracing macros

Sources required

LSVfc.class.php: Vae Soli! Foundation classes (such as LSMotherNature)

LSV.functions.php: Vae Soli! Foundation functions

LSV.defines.inc: Vae Soli! Foundation constants

LSAutoload.php: Autoloading of classes

LSUnitTesting.class.php: Vae Soli! Unit Testing

LSHttp.functions.php: HTTP functions

Classes

LSGeorama extends LSMotherNature

The LSGeorama is THE map of a web site. Everything that a developer will ever need to know how a site is managed is through the georama and through all the files included in the georama.

The web site is actually called the Pangaea. The Pangaea represented by the georama and is made of lands (pages) which are in turn made of archipelagos, themselves made of islands (and ... switches).

The Pangaea was a supercontinent that existed during the late Paleozoic and early Mesozoic eras. It is our metaphor to designate a web site.

Pangaea ← Lands ← Archipelagos ← Islands | Switches ... all sketched in the georama.

The georama is an XML file. Although the georama can be made of a single file, it is usually composed of many XML files.

Here is a typical georama file:

<?xml version="1.0" encoding="iso-8859-1"?>
<Georama xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0">
    <Vars>
        ... georama vars
    </Vars>

    <Settings>
    <!-- These settings apply to the georama -->
        ... georama settings
    </Settings>

    <Pangaea>
        <!-- Page settings -->
        <xi:include href="defaults.xml" />

        <!-- ==[Classes]================================== -->
        <xi:include href="georama-classes.inc.xml" />
        <!-- ==[End of classes]=========================== -->

        <!-- ==[Pages]==================================== -->
        <xi:include href="normal-modules.inc.xml" />

        ... more pages
    </Pangaea>

    <UserManagement>
        <!-- User Management settings -->
        ...
    </UserManagement>

</Georama>

In the above example, it is not plain to see that the Pangaea is composed of <Land>...</Land>, which are made of <Archipelago>...</Archipelago>, which are made of <Island>...</Island>. This is all hidden in the two inclusions: georama-classes.inc.xml and normal-modules.inc.xml.

Instead of repeating again and again the same definition for every page, the georama bears a unique feature: a class!

By designing classes the developer can save an invaluable time. Simply put, he will design a generic class that will contain all the archipelagos he needs for all pages (<Land>...</Land>), then he will simply state that a page inherits from that class. In the definition of THAT page, he will simply mention the additional archipelagos he needs or overwrite the archipelagos defined in the class the page inherits from. Simple? huh! Classes can extend classes for the sake of simplicity. Here is a simple georama file of classes:

<?xml version="1.0" encoding="iso-8859-1"?>
<Classes xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0">
    <Class id="public" group="main" lupdate="auto" active="yes" editable="yes">
        <Contents>
            <Archipelago id="header" active="yes" category="Q-header">
                <Island id="header" active="yes" class="LSContents">
                    <param name="storage"><![CDATA[/islands/{archipelago->id}-{page->lang}.php]]></param>
                </Island>
            </Archipelago>
            <Archipelago id="sysmenu" active="yes" category="Q-smenu">
                <Island id="sysmenu" active="yes" class="LSContents">
                    <param name="storage"><![CDATA[/islands/{archipelago->id}-{page->lang}.php]]></param>
                </Island>
            </Archipelago>
            <Archipelago id="language-switchers" active="yes" category="Q-ls">
                <Island id="language-switchers" active="yes" class="LSContentsLanguageSwitchers">
                    <param name="languages"><![CDATA[fr;nl;en;de;it;pt]]></param>
                </Island>
            </Archipelago>
            <Archipelago id="body" active="yes" category="Q-body">
                <Island id="body" active="yes" class="LSContents">
                    <param name="storage"><![CDATA[/islands/{archipelago->id}-{page->lang}.php]]></param>
                </Island>
            </Archipelago>
            <Archipelago id="footer" active="yes" category="Q-footer">
                <Island id="footer" active="yes" class="LSContents">
                    <param name="storage"><![CDATA[/islands/{archipelago->id}-{page->lang}.php]]></param>
                </Island>
            </Archipelago>
        </Contents>
    </Class>
    <!-- ==[Classes Intranet]======================================== -->
    <Class id="intranet" inherit="public"
           group="intranet"
           memberof="admin"
           onfail="/legal.php">
    </Class>
</Classes>

There, it is plain to see that a class contains <Archipelago>...</Archipelago> constructions that contain <Island>...</Island> constructions. No trace of the pages though: <Land>...</Land> (this will be explained in a bit).

The immediate benefit of classes that can inherit from other classes (be cautious about recursion though) is visible at a glance: the intranet class is completely based on the public class but authentication is required (memberof="admin"). If the visitor is not a member of the admin group, she will be redirected to the /legal.php page (that's the meaning of the onfail clause).

Now that we have seen fow the class mechanism works in the georama, let's have a look at the normal-modules.inc.xml file.

This is a file that contains a list of pages. Many additional files can be included depending on the complexity of the site to build. Here's a simplified version of the normal-modules.inc.xml file:

<?xml version="1.0" encoding="iso-8859-1"?>
<Pages xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0">
    <Land id="/index.php"
          inherit="public"
          href="%geo-path%/{land->id}.pdef.xml">
        <Sitemap priority="0.8" frequency="daily" />
    </Land>
    <!-- ************************************************************ -->
    <Land id="/about.php"
          inherit="public"
          href="%geo-path%/{land->id}.pdef.xml">
        <Sitemap priority="0.1" frequency="yearly" />
    </Land>
    <!-- ************************************************************ -->
    <Land id="/legal.php"
          inherit="public"
          href="%geo-path%/{land->id}.pdef.xml">
        <Sitemap priority="0.8" frequency="monthly" />
    </Land>
    <!-- ************************************************************ -->
    <Land id="/login.php" inherit="public">
    </Land>
    <!-- ************************************************************ -->
    ... More pages
    <!-- ************************************************************ -->
    <Land id="/intranet.php"
          inherit="intranet"
          href="%geo-path%/{land->id}.pdef.xml">
        <Sitemap priority="0.8" frequency="monthly" />
    </Land>
    <!-- ************************************************************ -->
</Pages>

All the pages except one are all based on the public class. The /intranet.php page is based on the intranet class.

Let's focus for a few seconds on the href="%geo-path%/{land->id}.pdef.xml" reference. What it does say is that this page definition is external and is to be found in a file whose name is built by the name of the page ({land->id}) augmented with .pdef.xml. The %geo-path% is a georama variable (section <Vars>...</Vars>) and is supposed to hold the path where the georama is located. Therefore, the page definition file is held at the very same location as the georama itself.

No matter what the page is made of at that stage. What was important to describe is ... Pangaea ← Lands ← Archipelagos ← Islands | Switches ... all sketched in the georama.

Properties
NameVisibilityTypeDescription
$aPageAttributes public array Array of page attributes (can be inherited from parent classes)
$aPageDefaultSettings public array Array of default page setting
$aPageSettings public array Array of page setting
$aVariables public array Array of georama variables
$iCache public int Cache TTL for this georama
$oDom public LSDom Document Object Model
$oPage public LSPage Page object
$oPublication public LSPublication Publication object (set of conditions to satisfy)
$oTagging public LSTagging Page tagging object
$oVersion public LSVersion Georama version object
$oXPath public LSXPath XPath object
$szArchipelagoHRef public string href value of a archipelago node
$szDefaultPage public string Name of the default page
$szGeoramaFile public string Georama physical filename
$szHRef public string href value when all other nodes can't be resolved (default)
$szIslandHRef public string href value of an island node
$szPageHRef public string href value of a page node
$szRoot public string Root directory of the site
$szSwitchHRef public string href value of a switch node
Parent Properties (LSMotherNature)
NameType
Cargo NULL
GodStamp string
Shelter NULL
__LS_Consciousness NULL
cargo NULL
fPerf double
fPerfThreshold double
id NULL
oApp NULL
oTracer NULL
szNow NULL
szToday NULL
Methods
  1. __construct(): Class constructor.
  2. AddVariable(): Add a variable to the internal list of georama variables georama. Internally, the list of variables is maintained as an array of LSGeoramaVar objects.
  3. CacheSettings(): Loads the default parameters applicable to ALL pages.
  4. CanReveal(): Determines if a node can be revealed or not depending on the conditions and filters that have been set.
  5. EmergeArchipelagosFromParent(): Emerges the archipelagos corresponding to a given category and defined in a parent class.
  6. EmergeArchipelogos(): Renders all archipelagos matching the categories mentioned in $szCats
  7. EmergeIsland(): Emerge an island of a given archipelago
  8. EmergeIslands(): Emerge all islands of a given archipelago
  9. EmergeIslandsFromParent(): Renders the islands included in the parent georama class (same archipelago)
  10. EmergeSwitch(): Emerge a switch of a given archipelago
  11. Expand(): Determines whether $oNode must be revealed (all filters and LSPublication conditions are examined) and expands the node if need be
  12. GetAttrValue(): Returns the value of the $szAttr attribute of the $szTag tag in the $oContext context.
  13. GetDefaultPageNode(): Get the default node of a page (if there is one)
  14. GetPageDescription(): Returns the description of a page. The description is extracted from the georama by taking the language into account. Keywords are stored in a construction of the georama.
  15. GetPageH1(): Returns the h1 of a page. This value is extracted from the h1 attribute of the following construction in the georama: h1="..." lang="...">
  16. GetPageKeywords(): Returns the keywords associated with a page. The keywords are extracted from the georama by taking the language into account. Keywords are stored in a ... construction of the georama.
  17. GetPageNode(): Get the node corresponding to a given page
  18. GetPageObject(): Returns the page object. If the $oPage parameter is null we shall try to get the page object from the $oApp application object.
  19. GetPageSetting(): Extracts the $szSetting setting out of all the settings defined for that page (all parent settings are solved appropriately). If the setting is not found (not defined for example) the $xDefault value is returned instead
  20. GetPageTitle(): Extracts the title of the page (...)
  21. GetTags(): Returns a list of node corresponding to $szTag in the $oContext context
  22. IncrementOccurrences(): Increments the occurrence counter for a specific content whose GUID is the parameter of the function. Each time the same contents gets published the counter is incremented. A filter can be used to
  23. Init(): Georama initialization
  24. ListAttributes(): List all attributes of a node and put each attribute and its related value in the aPageAttributes property of the page.
  25. ListVariables(): Returns an associative array of variables. Keys represent variable names; cells hold variable values.
  26. ListVars(): Returns a tokenized string of georama variables (\n as separator)
  27. LoadDefaultGeoramaSettings(): Loads the default settings of the georama
  28. LoadDefaultPageSettings(): Loads the default parameters applicable to ALL pages.
  29. LoadNodesAndValues(): Loads the settings of a page (nodes AND values).
  30. LoadPageSettings(): Load all settings of the page.
  31. LoadVariables(): Load all variables defined in the ... section of the georama.
  32. OnFail(): Determines if an onfail clause has been mentioned on a node
  33. OnFailIslandArchipelago(): This method is triggered whenever an island or archipelago cannot be expanded (and does not satisfy the set of filters and conditions). It tries to locate an onfail attribute which is parsed and invoked.
  34. Resolve(): Resolves $szValue by taking into account the variables defined in the georama and all substitutions set in the page (PHP expressions are NOT evaluated)
  35. ResolveHRef(): Resolves href attribute on a node
  36. ResolveVars(): $szValue is modified by resolving all variables defined in the georama
  37. SolveParentProperties(): Solve the parent settings defined for a given page. As pages can inherit the properties of georama classes, properties of a page must be solved by taking into account all properties defined in parent classes. Settings are defined in ... constructs.
__construct(): Class constructor.

[ back to method list ]

Syntax

__construct( $oApplication,$iCache )

Parameters
NameTypeDescription
$oApplication LSApplication LSApplication object. Optional but recommended.
$iCache int Cache TTL of the georama in seconds. Experimental feature.
Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

AddVariable(): Add a variable to the internal list of georama variables georama. Internally, the list of variables is maintained as an array of LSGeoramaVar objects.

[ back to method list ]

Remark

Predefined georama variables:

%today()% = date('Ymd')
%now()% = date('YmdHis')
%day()% = strtolower( date('l') )
%month()% = strtolower( date('F') )
%year()% = date('Y')
%utc()% = (string) time()
%domain()% = $this->oApp->szDomain
%topdomain()% = $this->oApp->szTopDomain
%mobility()% = $this->oApp->oBrowser->szMobility
%browser()% = $this->oApp->oBrowser->szName
%browser-type()% = $this->oApp->oBrowser->szType
%TRACING_NONE_LEVEL% = TRACING_NONE_LEVEL
%TRACING_ABOVE_NONE_LEVEL% = TRACING_ABOVE_NONE_LEVEL
%TRACING_ERROR_LEVEL% = TRACING_ERROR_LEVEL
%TRACING_ABOVE_ERROR_LEVEL% = TRACING_ABOVE_ERROR_LEVEL
%TRACING_QUESTION_LEVEL% = TRACING_QUESTION_LEVEL
%TRACING_WARNING_LEVEL% = TRACING_WARNING_LEVEL
%TRACING_GOOD_TO_KNOW_LEVEL% = TRACING_GOOD_TO_KNOW_LEVEL
%TRACING_INFO_LEVEL% = TRACING_INFO_LEVEL
%TRACING_INFO_MEDIUM_LEVEL% = TRACING_INFO_MEDIUM_LEVEL
%TRACING_INFO_HIGH_LEVEL% = TRACING_INFO_HIGH_LEVEL
%TRACING_INFO_HIGHHIGH_LEVEL% = TRACING_INFO_HIGHHIGH_LEVEL

Syntax

AddVariable( $szName,$xValue )

Parameters
NameTypeDescription
$szName string Name of the variable to add
$xValue mixed Value of the variable
Return

(int) The number of variables defined in the georama

Example Executed
$oGeo = new LSGeorama();
$oGeo->AddVariable( 'Ma Variable','La valeur de "Ma Variable"' );
$oGeo->AddVariable( 'Your Variable','The value of "Your Variable"' );
var_dump( $aVars = $oGeo->ListVariables() );
echo LSUnitTesting::assert( $aVars['Ma Variable'] === 'La valeur de "Ma Variable"',
                            'ASSERTION SUCCESSFUL: \'Ma Variable\' variable found with correct value',
                            'ASSERTION FAILURE: \'Ma Variable\' variable NOT found or with incorrect value',
                            'GuideAssert' );
echo LSUnitTesting::assert( $aVars['Your Variable'] === 'The value of "Your Variable"',
                            'ASSERTION SUCCESSFUL: \'Your Variable\' variable found with correct value',
                            'ASSERTION FAILURE: \'Your Variable\' variable NOT found or with incorrect value',
                            'GuideAssert' );

array (size=2)
  'Ma Variable' => string 'La valeur de "Ma Variable"' (length=26)
  'Your Variable' => string 'The value of "Your Variable"' (length=28)

GuideAssert() ... ASSERTION SUCCESSFUL: 'Ma Variable' variable found with correct value

GuideAssert() ... ASSERTION SUCCESSFUL: 'Your Variable' variable found with correct value

Unit Testing

2 assertions: 2 successful; 0 failed

CacheSettings(): Loads the default parameters applicable to ALL pages.

[ back to method list ]

Created: 05/08/2013 08:59

Author

Syntax

CacheSettings( $szType,$szContent )

Parameters
NameTypeDescription
$szType unknown
$szContent string Cache type (default-page-settings, page-settings, or dpage-properties) $aContent (array) Optional content to be saved in the cache
Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

CanReveal(): Determines if a node can be revealed or not depending on the conditions and filters that have been set.

[ back to method list ]

Syntax

CanReveal( $oNode,$oPage )

Parameters
NameTypeDescription
$oNode DOMNode DOM node of the page/archipelago/island
$oPage LSPage Optional page object
Return

(bool) true if $oNode can be revealed; false otherwise. The following filters are examined:

ip
memberof

... and all conditions that are checked in a common LSPublication object (via the Can() method).

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

EmergeArchipelagosFromParent(): Emerges the archipelagos corresponding to a given category and defined in a parent class.

[ back to method list ]

Author

Syntax

EmergeArchipelagosFromParent( $oPage,$szCat,$szClass )

Parameters
NameTypeDescription
$oPage LSPage Optional. Page object.
$szCat string Category(ies) archipelagos must match
$szClass string Parent class
Return

(mixed) Next class to be treated or null if no other class must be treated.

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

EmergeArchipelogos(): Renders all archipelagos matching the categories mentioned in $szCats

[ back to method list ]

Syntax

EmergeArchipelogos( $oPage,$szCats )

Parameters
NameTypeDescription
$oPage LSPage Page the archipelagos belong to. Passed by reference
$szCats string Tokenized list of categories. Optional. Blank by default.
Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

EmergeIsland(): Emerge an island of a given archipelago

[ back to method list ]

Author

Syntax

EmergeIsland( &$oPage,$szPageID,$szLanguage,$oArchipel,$szCat,$oNode )

Parameters
NameTypeDescription
&$oPage LSPage Page object. By reference.
$szPageID string Page ID (e.g. '/index.php')
$szLanguage string The current language value (language of the page)
$oArchipel DOMNode The node of the archipelago whose islands must be revealed
$szCat string Archipelagos category to consider
$oNode DOMNode The XML node of the island to be revealed
Parameters Warning

EmergeIsland() uses 6 parameters whereas the suggested limit is 3.

Return

(bool) true if island successully inserted; false otherwise.

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

EmergeIslands(): Emerge all islands of a given archipelago

[ back to method list ]

Author

Syntax

EmergeIslands( &$oPage,$szPageID,$szLanguage,$szCat,$oArchipel )

Parameters
NameTypeDescription
&$oPage LSPage Page object. By reference.
$szPageID string Page ID (e.g. '/index.php')
$szLanguage string The current language value (language of the page)
$szCat string Archipelagos category to consider
$oArchipel DOMNode The node of the archipelago whose islands must be revealed
Parameters Warning

EmergeIslands() uses 5 parameters whereas the suggested limit is 3.

Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

EmergeIslandsFromParent(): Renders the islands included in the parent georama class (same archipelago)

[ back to method list ]

Syntax

EmergeIslandsFromParent( $oPage,$szPageID,$szLanguage,$szCat,$oArchipel,$oNodeList,$szClass )

Parameters
NameTypeDescription
$oPage LSPage Current page object
$szPageID string Page ID (e.g. '/test.php')
$szLanguage string Page language
$szCat string The category to use for archipelagos extraction
$oArchipel DOMNode Archipelago node to be examined
$oNodeList DOMNodeList DOM Node list
$szClass string Georama class name (e.g. 'public')
Parameters Warning

EmergeIslandsFromParent() uses 7 parameters whereas the suggested limit is 3.

Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

EmergeSwitch(): Emerge a switch of a given archipelago

[ back to method list ]

Author

Syntax

EmergeSwitch( &$oPage,$szPageID,$szLanguage,$oArchipel,$szCat,$oNode )

Parameters
NameTypeDescription
&$oPage LSPage Page object. By reference.
$szPageID string Page ID (e.g. '/index.php')
$szLanguage string The current language value (language of the page)
$oArchipel DOMNode The node of the archipelago whose switches must be revealed
$szCat string Archipelago category to consider
$oNode DOMNode The XML node of the switches to be revealed
Parameters Warning

EmergeSwitch() uses 6 parameters whereas the suggested limit is 3.

Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

Expand(): Determines whether $oNode must be revealed (all filters and LSPublication conditions are examined) and expands the node if need be

[ back to method list ]

Syntax

Expand( $oPage,$szPageID,$szLanguage,&$oNode,$szQuery )

Parameters
NameTypeDescription
$oPage LSPage Page the $oNode belongs to
$szPageID string Page ID (e.g. '/test.php')
$szLanguage unknown
&$oNode LSPage Page the $oNode belongs to $szPageID (string) Page ID (e.g. '/test.php') $szlanguage (string) Page language $oNode (DOMNode) Node to be examined. Passed by reference.
$szQuery string Optional query to trigger. '//Archipelago' by default.
Parameters Warning

Expand() uses 5 parameters whereas the suggested limit is 3.

Return

(int) Return code: LS_VAESOLI_SUCCESS_SUCCESS if success

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

GetAttrValue(): Returns the value of the $szAttr attribute of the $szTag tag in the $oContext context.

[ back to method list ]

Author

Syntax

GetAttrValue( $szTag,$szAttr,$oContext )

Parameters
NameTypeDescription
$szTag string Tag to look for
$szAttr string a Attribute to extract
$oContext DOMNode Optional context node. null by default
Return

(string) The value of the $szAttr in the $szTag tag or null if failure retrieving the attribute

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

GetDefaultPageNode(): Get the default node of a page (if there is one)

[ back to method list ]

Author

Syntax

GetDefaultPageNode()

Parameters

None

Return

(DOMNode) The default node of the page or null if no default page is defined in the georama

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

GetPageDescription(): Returns the description of a page. The description is extracted from the georama by taking the language into account. Keywords are stored in a construction of the georama.

[ back to method list ]

Author

Syntax

GetPageDescription( $oPage,$xDefault )

Parameters
NameTypeDescription
$oPage LSPage Optional. Page object. null by default.
$xDefault mixed The value to return if description is not found. '' by default.
Return

(mixed) The description of the current page

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

GetPageH1(): Returns the h1 of a page. This value is extracted from the h1 attribute of the following construction in the georama: h1="..." lang="...">

[ back to method list ]

Author

Syntax

GetPageH1( $oPage,$xDefault )

Parameters
NameTypeDescription
$oPage LSPage Optional. Page object.
$xDefault mixed The value to return if h1 is not found.
Return

(mixed) The h1 of the current page

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

GetPageKeywords(): Returns the keywords associated with a page. The keywords are extracted from the georama by taking the language into account. Keywords are stored in a ... construction of the georama.

[ back to method list ]

Author

Syntax

GetPageKeywords( $oPage,$xDefault )

Parameters
NameTypeDescription
$oPage LSPage Optional. Page object.
$xDefault mixed The value to return if keywords are not found.
Return

(mixed) The keywords of the current page (string ... most of the time)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

GetPageNode(): Get the node corresponding to a given page

[ back to method list ]

Author

Syntax

GetPageNode( $oPage,$szPageID )

Parameters
NameTypeDescription
$oPage LSPage Optional. Page object.
$szPageID string ID of the page to get the node for. The ID is the page URL.
Return

(DOMNode) The node of the page or null if the page was not found in the georama

Assertions

true === true successful

Unit Testing

1 assertions: 1 successful; 0 failed

GetPageObject(): Returns the page object. If the $oPage parameter is null we shall try to get the page object from the $oApp application object.

[ back to method list ]

Author

Syntax

GetPageObject( $oPage )

Parameters
NameTypeDescription
$oPage LSPage Optional. Page object. By reference.
Return

(LSPage) The page object (or whatever was passed in entry).

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

GetPageSetting(): Extracts the $szSetting setting out of all the settings defined for that page (all parent settings are solved appropriately). If the setting is not found (not defined for example) the $xDefault value is returned instead

[ back to method list ]

Author

Syntax

GetPageSetting( $szSetting,$xDefault )

Parameters
NameTypeDescription
$szSetting string The setting we're looking for
$xDefault mixed The value to return if $szSetting not found
Return

(mixed) The value of $szSetting

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

GetPageTitle(): Extracts the title of the page (...)

[ back to method list ]

Author

Syntax

GetPageTitle( $oPage,$xDefault )

Parameters
NameTypeDescription
$oPage LSPage Optional page. Passing the page is recommended though. null by default
$xDefault mixed The value to return if the title is not found. '' by default
Return

(mixed) The value of the title (can be anything based on $xDefault)

Assertions

true === true successful

Unit Testing

1 assertions: 1 successful; 0 failed

GetTags(): Returns a list of node corresponding to $szTag in the $oContext context

[ back to method list ]

Author

Syntax

GetTags( $szTag,$oContext )

Parameters
NameTypeDescription
$szTag string Tag to look for
$oContext DOMNode Optional context node. null by default
Return

(DOMNodeList) A list of DOMNode nodes or null if query unsuccessful

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

IncrementOccurrences(): Increments the occurrence counter for a specific content whose GUID is the parameter of the function. Each time the same contents gets published the counter is incremented. A filter can be used to

[ back to method list ]

Syntax

IncrementOccurrences( $szGUID )

Parameters
NameTypeDescription
$szGUID string The GUID that identifies the content for which some occurrence tracking must be performed
Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

Init(): Georama initialization

[ back to method list ]

Syntax

Init()

Parameters

None

Return

(int) Initialization error code or LS_VAESOLI_SUCCESS_SUCCESS upon success

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

See Also

AddVariable()

ListAttributes(): List all attributes of a node and put each attribute and its related value in the aPageAttributes property of the page.

[ back to method list ]

Author

Syntax

ListAttributes( $oNode )

Parameters
NameTypeDescription
$oNode DOMNode Node to consider
Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

ListVariables(): Returns an associative array of variables. Keys represent variable names; cells hold variable values.

[ back to method list ]

Syntax

ListVariables()

Parameters

None

Return

(array) 'var-name', 'var-value'

Example(s)
$aVars = $oGeorama->ListVariables();
if ( count ( $aVars ) > 0 )
{
    echo "<ol>";
    foreach ( $aVars as $szName => $xValue )
    {
        echo "<li>{$szName} = {$xValue}</li>";
    }
    echo "</ol>";
}
Assertions

true === true successful

Unit Testing

1 assertions: 1 successful; 0 failed

See Also

ListVars(), AddVariable()

ListVars(): Returns a tokenized string of georama variables (\n as separator)

[ back to method list ]

Syntax

ListVars()

Parameters

None

Return

(string) The string of variables in the following form: "'var-name' = 'var-value'\n'var-name' = 'var-value'\n...". Please notice the \n between each setting.

Example(s)
echo $oGeorama->ListVars();
Assertions

true === true successful

Unit Testing

1 assertions: 1 successful; 0 failed

See Also

ListVariables()

LoadDefaultGeoramaSettings(): Loads the default settings of the georama

[ back to method list ]

Author

Syntax

LoadDefaultGeoramaSettings()

Parameters

None

Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

LoadDefaultPageSettings(): Loads the default parameters applicable to ALL pages.

[ back to method list ]

Modified: 04/08/2013 17:11

Author

Syntax

LoadDefaultPageSettings()

Parameters

None

Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

LoadNodesAndValues(): Loads the settings of a page (nodes AND values).

[ back to method list ]

Author

Caution

This function uses reccurrence

Abstract

A settings node is similar to : <Default>
<Settings>
<Doctype>xhtml11</LSDoctype>
<LSIsDebug>false</LSIsDebug>
<LSCacheTTL>0</LSCacheTTL>
...
</Settings>
</Default>
An array is filled with all the values found in the XML : - aPageDefaultSettings[] if default page settings - aPageSettings[] if page settings (this array overwrites the default settings)

Syntax

LoadNodesAndValues( $oNode,$iSettingsType )

Parameters
NameTypeDescription
$oNode DOMNode Node to start from.
$iSettingsType integer 1 = default page settings
0,2,3 = page settings
Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

LoadPageSettings(): Load all settings of the page.

[ back to method list ]

Author

Abstract

Parameters of a page can either be set as defaults (valid for all pages) or they can be set at the page level such as <Land><Defaults><Settings>...</Settings></Defaults></Land>

Syntax

LoadPageSettings( $oPage,$szPage )

Parameters
NameTypeDescription
$oPage LSPage Page object
$szPage string Page script name. Optional: null by default
Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

LoadVariables(): Load all variables defined in the ... section of the georama.

[ back to method list ]

Syntax

LoadVariables()

Parameters

None

Return

(void)

Assertions

true === true successful

Unit Testing

1 assertions: 1 successful; 0 failed

See Also

AddVariable()

OnFail(): Determines if an onfail clause has been mentioned on a node

[ back to method list ]

Syntax

OnFail( $oNode,$oPage )

Parameters
NameTypeDescription
$oNode DOMNode XML Node to consider
$oPage LSPage Page we come from (or null if unknown) (the $oNode node belongs to this page)
Return

(string) onfail clause or null if no onfail clause found

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

OnFailIslandArchipelago(): This method is triggered whenever an island or archipelago cannot be expanded (and does not satisfy the set of filters and conditions). It tries to locate an onfail attribute which is parsed and invoked.

[ back to method list ]

Syntax

OnFailIslandArchipelago( $oNode,$oPage,$iErrCode )

Parameters
NameTypeDescription
$oNode DOMNode The archipelago/island node
$oPage LSPage Page the island/archipelago belongs to
$iErrCode int Error code
Return

(bool) true if successful; false if failure

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

Resolve(): Resolves $szValue by taking into account the variables defined in the georama and all substitutions set in the page (PHP expressions are NOT evaluated)

[ back to method list ]

Author

Syntax

Resolve( $szValue )

Parameters
NameTypeDescription
$szValue string Value to resolve
Return

(string) $szValue resolved

Example(s)
$this->Resolve( "%path%/001.php" ) ->
    "/vaesoli/islands/001.php" if "%path%" is defined as
    equal to "/vaesoli/islands"
Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

ResolveHRef(): Resolves href attribute on a node

[ back to method list ]

Author

Syntax

ResolveHRef( $oNode,$szQuery,$oDom )

Parameters
NameTypeDescription
$oNode DOMNode Node object from which the href attribute must be resolved. Updated upon exit.
$szQuery string Query to be performed. Optional: //Land by default.
$oDom LSDom DOM object. Optional. null by default.
Return

(DOMNode) DOM node updated

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

ResolveVars(): $szValue is modified by resolving all variables defined in the georama

[ back to method list ]

Syntax

ResolveVars( $szValue )

Parameters
NameTypeDescription
$szValue string The string to process
Return

(string) $szValue where all occurrences of %...% have been resolved to their respective value.

Example Executed
$oGeorama = new LSGeorama();

$oGeorama->AddVariable( 'hello','Salut' );
$oGeorama->AddVariable( 'world','Monde' );

echo $oGeorama->ResolveVars( '%hello% %world%' );    // will print 'Salut Monde'

Salut Monde
Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

SolveParentProperties(): Solve the parent settings defined for a given page. As pages can inherit the properties of georama classes, properties of a page must be solved by taking into account all properties defined in parent classes. Settings are defined in ... constructs.

[ back to method list ]

Modified: 05/08/2013 21:13

Author

Syntax

SolveParentProperties( $oPage,$oNode )

Parameters
NameTypeDescription
$oPage LSPage Page object
$oNode DOMNode Node of the page. Optional.
Return

(void)

Unit Testing

WARNING: No Unit Testing found. Please provide assertions with assertion constructs ({*assert ... *}) or with GuideAssert() function calls in exec constructs ({*exec ... *}).

Précédent Suivant

D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php:3658:
object(LogicException)[82]
  protected 'message' => string 'Class LSContentsShare could not be loaded' (length=41)
  private 'string' (Exception) => string '' (length=0)
  protected 'code' => int 0
  protected 'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
  protected 'line' => int 3587
  private 'trace' (Exception) => 
    array (size=15)
      0 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 3587
          'function' => string 'spl_autoload' (length=12)
          'args' => 
            array (size=1)
              ...
      1 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 3262
          'function' => string 'EmergeIsland' (length=12)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=6)
              ...
      2 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 2756
          'function' => string 'EmergeIslands' (length=13)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=5)
              ...
      3 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php' (length=72)
          'line' => int 2994
          'function' => string 'EmergeArchipelagosFromParent' (length=28)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=3)
              ...
      4 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5928
          'function' => string 'EmergeArchipelagos' (length=18)
          'class' => string 'LSGeorama' (length=9)
          'type' => string '->' (length=2)
          'args' => 
            array (size=2)
              ...
      5 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\template\vaesoli.html' (length=58)
          'line' => int 111
          'function' => string 'Land' (length=4)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      6 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 6110
          'args' => 
            array (size=1)
              ...
          'function' => string 'include' (length=7)
      7 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 6053
          'function' => string 'XInclude' (length=8)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      8 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5828
          'function' => string 'IncludeTemplate' (length=15)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      9 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 5580
          'function' => string 'UseTemplate' (length=11)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      10 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 3282
          'function' => string 'RenderXML' (length=9)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      11 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSPage.class.php' (length=69)
          'line' => int 2082
          'function' => string 'StartPage' (length=9)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      12 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSApplication.class.php' (length=76)
          'line' => int 814
          'function' => string 'Render' (length=6)
          'class' => string 'LSPage' (length=6)
          'type' => string '->' (length=2)
          'args' => 
            array (size=0)
              ...
      13 => 
        array (size=6)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\master.php' (length=47)
          'line' => int 8
          'function' => string 'Run' (length=3)
          'class' => string 'LSApplication' (length=13)
          'type' => string '->' (length=2)
          'args' => 
            array (size=0)
              ...
      14 => 
        array (size=4)
          'file' => string 'D:\websites\vaesoli.org\www\httpdocs\documentation\documentation-vaesoli-code-source.php' (length=88)
          'line' => int 1
          'args' => 
            array (size=1)
              ...
          'function' => string 'include' (length=7)
  private 'previous' (Exception) => null
  public 'xdebug_message' => string '<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> LogicException: Class LSContentsShare could not be loaded in D:\websites\vaesoli.org\www\httpdocs\vaesoli\include\LSGeorama.class.php on line <i>3587</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</t'... (length=6277)