Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/importoldindex/action.php on line 8

Strict Standards: Declaration of action_plugin_popularity::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/popularity/action.php on line 57

Strict Standards: Declaration of action_plugin_safefnrecode::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/safefnrecode/action.php on line 66

Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/html/lib/plugins/importoldchangelog/action.php on line 182

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/lib/plugins/importoldindex/action.php:8) in /var/www/html/inc/actions.php on line 607
Ezt a kis szösszenetet azért hoztam létre, hogy valamennyire átlássa mindenki, hogyan is működik a rendszer és ezzel talán kicsit könnyítsem a hibakeresést (itt főleg az indulás részre gondolok). Valamint ez egy teljes linkgyűjtemény, mivel minden lehetséges helyen hivatkozom a már megírt vagy megírandó oldalakra. ====== Működés ====== ===== Indulás ===== ==== 0. lépés ==== A rendszer (némi inicializálás után) a [[params|parancssori paraméterek]] értelmezésével kezdi a működést. A paraméterek között vannak olyanok, amelyek a feladat elvégzése után azonnal ki is lépnek. A fel nem ismert paramétereket az **ARGS** tömbben helyezi el. ==== 1. lépés ==== Amennyiben a paraméterek egyike sem olyan, hogy a rendszer megálljon, akkor az indulás a [[log]] fájl megnyitásával folytatódik (amennyiben [[params|paracssorból]] nem tiltottuk le a -nolog opcióval). Ekkor rögtön beírja a [[log]]ba, hogy **"Application starting..."** és az **"Application version: 0.8.3.8 (css) (cmd) (png) (gif) (mysql) (postgres)"** ([[versions|Bővebben]]) Ezután a [[Cor4App.ini]] fájl olvasása következik, amiből a működés egyes paraméterei mellett megállapítja az alkalmazás gyökérkönyvtárát. A következő lépésben a PHP alrendszer inicializálása következik a következő sorrendben: a PHP parser indítása, [[.functions:index|függvények]] regisztrálása és végül a [[http://hu.php.net/manual/hu/language.operators.php#language.operators.precedence|PHP operátorok]] regisztrálása. Még ebben a lépésben inicializálja a megjelenítő modult is a megfelelő [[screen_xml|komponensek]] (''controls'') regisztrálásával. Amennyiben idáig hiba nélkül eljut a rendszer a [[versions|DEBUG]] verzió egy a log-ba írt ''Base objects loaded successfully'' üzenettel tudatja ezt velünk, ellenkező esetben (minden verzió esetén) egy hibaablakot kapunk, a ''Hiba a rendszer inicializálása közben'' üzenettel. Ha nem képes írásra megnyitni a log-ot (mert például már fut egy példányban), akkor is ezt az üzenetet kapjuk! ==== 2. lépés ==== A munkát a [[consts|konstansok]] inicializálásával folytatja, amelyben először az előre definiált konstansokat (pl: billentyűkódok) definiálja. Ezután megpróbálja a [[Cor4App.ini]] fájlban meghatározott helyről felolvasni az [[appconfig.inc.php]] fájlt. Amennyiben nem létezik ez a fájl, akkor egy ''Nem sikerült beolvasni a konfigurációs file-t: "//filenév//"'' hibaüzenetet kapunk és a program azonnal terminál. Siker esetén a [[versions|DEBUG]] verzió egy ''Constants loaded'' üzenetet küld. Ezután néhány fontos belső konstans meghatározása (pl: téma könyvtár, temp könyvtár stb.) után olvassa be a listában használt négy pici ikont a [[consts|DIR_IMAGES]] által meghatározott könyvtárból: * ''list_csv.gif'': a CSV export ikonja * ''list_csv_filt.gif'': a szűrt eredmény exportálásának ikonja * ''list_print.gif'': a nyomtatás ikonja * ''list_print_filt.gif'': a szűrt eredmény nyomtatásának ikonja Megvizsgálja az [[consts|INCLUDES]] konstans értékét, és amennyiben értéke nem üres vesszővel elválasztott listának tekinti és a felsorolt fájlokat (mint PHP fájlokat) végrehajtja. Célszerű ezekben csak függvényeket definiálni, mert a globális változók nem maradnak meg! Végül amennyiben az [[consts|APP_ICON]] konstans értéke nem üres, akkor az általa meghatározott fájl lesz az alkalmazás ikonja. A lépés befejezéseképpen a [[versions|DEBUG]] verzió a logba ír két üzenetet: ''Application theme directory is "data\themes\onlineweb"'' és ''Application temporary directory is "w:\app\source\tmp"'', amelyek a téma könyvtár (relatív) címét illetve a temporary könyvtár teljes elérési útját tudatják velünk. ==== 3. lépés ==== A [[versions|CSS]] fordítású kliens ekkor olvassa fel a megfelelő template fájlt, amelyet (az előbb kiírt) téma könyvtár és a ''HTML_DEFAULT_TEMPLATE'' konstans összeolvasztásából nyer ki. A [[versions|DEBUG]] kliens a felolvasás kezdetét egy ''Loading template...'' üzenettel jelzi, a befejezésre pedig egy ''Template loaded'' üzenet figyelmeztet. Majd ezután értelmezi a [[langpack]] fájlt, amit a ''DIR_LANGPACK'' könyvtárban keres ''lang_xx.php'' néven, ahol az ''xx'' a ''CURRENT_LANG'' konstans értéke. Ezzel a rendszer alap rendszerei inicializálva vannak és a szükséges konfigurációs fájlokat is felolvasta a rendszer. A [[versions|DEBUG]] verzió egy ablakot jelenít meg, rajta két gombbal: ''AppTest'' és ''ScanAndRun''. Az ''AppTest'' indítja az alkalmazást úgy, mint ahogyan a [[versions|NORMAL]] verzió indítaná. A ''ScanAndRun'' tesztelésre használható: az alkalmazás gyökerében található test.php alkalmazást futtatja le, mint egy handlert. Az alkalmazás indítása úgy történik, hogy az ''APP_START_PROCESS'' konstans alapján megállapítja az induló [[cor4:app:process]]-t és annak felolvasásával elkezdődik az alkalmazás futtatása.