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
cor4:app:screen_xml
Table of Contents

Egy oldal megjelenését egy XML file írja le. Ez az XML nagyon egyszerű struktúrát ír le, mivel az alapkoncepció szerint az oldal csak egy egyszerű táblázatból állhat.

SCREEN

A gyökér elem. A következő tulajdonságai vannak:

ROW

A sorokat határolja a HTML-hez hasonlóan. Az oldal megjelenítéséért felelős elemek csak ezen belül lehetnek. (a natív kliens nem igényli a záró tagot, de azért érdemes kirakni)

HELP

A HELP elemnek nincsenek tulajdonságai. A <HELP> és </HELP> elemek közötti szöveg a SCREEN megjelenésekor az F1 billentyű hatására jelenik meg. Ide kell írni az adott SCREEN-hez tartozó segítséget.

SCREEN

Ezen a tag-en belül egy teljesen ugyanilyen struktúrájú subscreen-t helyezhetünk el. A SIS (Screen-In-Screen) technikával tetszőleges tagolás elérhető és az elemek átrendezése is sokkal egyszerűbbé válik.

Amennyiben subscreenre szeretnénk hivatkozni (például setvalue függvényben), akkor ezt a subscreen_neve.elem_neve módon tehetjük meg. A subscreen-ekre semmilyen korlát nincs, tehát lehet neki is subscreen-je (amelyre subscreen1_neve.subscreen2_neve.elem_neve módon hivatkozhatunk).

A következő tulajdonságaiban tér el a (külső) SCREEN-től:

Másik lehetőség, hogy egy <SCREEN FILE="fájlnév" /> alakú bejegyzést helyezünk el, ez a megadott fájlból beolvassa a SCREEN adatait és beilleszti az oldal tartalmába, mintha az ide lett volna beírva. FONTOS: a SubScreen nevét alapértelmezetten a fájlból veszi, de amennyiben a hívó TAG-ben szerepel NAME tulajdonság, akkor az kerül alkalmazásra (pl: <SCREEN FILE="fájlnév" NAME="test" /> esetén a SubScreen-re test néven hivatkozhatunk a fájlban megadott névtől függetlenül)

CONTROL

A CONTROL helyett használható az ELEMENT megnevezés is, de ennek támogatása várhatóan meg fog szűnni.

Az oldal ilyen CONTROL-okból épül fel. A CONTROL egyetlen kötelező mezője a TYPE, amely megadja a CONTROL tipusát.

Minden CONTROL rendelkezik a következő tulajdonságokkal:

A következőkben a CONTROL tipusokat részletezem, a Tulajdonságok szekcióban az XML-ben megadható tulajdonságokat, a Visszaadott érték szekcióban az OperationData-ba gombnyomáskor elhelyezett illetve a GetValue() függvény által visszaadott értéket (amely általában ugyanaz), az Értékadás szekcióban pedig a SetValue() függvénnyel megadott érték hatását fejtem ki, végül az Események szekcióban az contolhoz kapcsolható esemény-típusokat sorolom fel.

PageControl

A Windows-ban jól ismert tab-os komponens, amellyel rengeteg helyet spórolhatunk meg az oldalon.

Ezen a TAG-en belül tetszőleges számú SCREEN tag elhelyezhető, amely a szokásos komponensekkel használható és használható a fájlból olvasott SCREEN is. A SIS technikához hasonlóan itt sincs semmilyen megszorítás: lehet elhelyezni a komponensen subscreent és újabb pagecontrol-t is! Speciálisan kezeli ha valamelyik másik komponens PAGECONTROL-ra hivatkozik a NEED illetve a RONEED tulajdonságban. Ilyenkor a komponens neve után ”:”-al elválasztva módosítót lehet megadni (pl: page:notlast):

Tulajdonságok

Érték Definiált konstans Jelentés
0 TS_TABS Az alapértelmezett eset; a szokásos tabos módszer
1 TS_BUTTONS Mintha a tabok helyén szabvány Windows gombok lennének
2 TS_FLATBUTTONS A tabok helyén felirat, amely “lenyomódik”, ha kiválasztjuk

Visszaadott érték

Az aktuális tab nevét adja vissza.

Értékadás

Egyenértékű az ACTIVE tulajdonság módosításával.

Események

OnChange

Példa

<SCREEN NAME="main">
  <ROW>
    <PAGECONTROL ACTIVE="tab_2" STYLE="0" HOTTRACK="true" COLSPAN="2">
      <SCREEN TYPE="subscreen" NAME="tab_1" TITLE="Panel1">
        <ROW>
          <CONTROL TYPE="label" TABORDER="0" CAPTION="sdaasdasdds" VALIGN="center" WIDTH="40"/>
          <CONTROL TYPE="date" CAPTION="dsadsadsa" NAME="ezmegaz" TABORDER="0" STARTYEAR="0" ENDYEAR="0"/>
        </ROW>
        <ROW>
          <CONTROL TYPE="label" TABORDER="0" CAPTION="sdfsdfsdf" VALIGN="center" WIDTH="0"/>
          <CONTROL TYPE="select" CAPTION="wefdsdsdsddf" NAME="bela" TABORDER="0" ROWS="0" MULTISELECT="false" WIDTH="25"/>
        </ROW>
      </SCREEN>
      <SCREEN TYPE="subscreen" NAME="tab_2" TITLE="Panel2">
        <ROW>
          <CONTROL TYPE="label" TABORDER="0" CAPTION="Második tab" VALIGN="center" WIDTH="40"/>
        </ROW>
      </SCREEN>
    </PAGECONTROL>
  </ROW>
</SCREEN>

Tree

A Windows-ban jól ismert fa komponens.

Tulajdonságok

Visszaadott érték

Egy tömböt ad vissza, melynek két kulcsa van:

Értékadás

Egy összetett tömbbel kell megadni a fa szerkezetét:

Egy elemet, mindig egy tömb reprezentál, melynek első eleme az elem felirata, második eleme adja meg, hogy az adott elem nyitott állapotban legyen-e induláskor és harmadik eleme tartalmazza a gyerek elemek tömbjét. Az azonosítót a tömb kulcsa adja meg.

Például:
SetValue('tree1',array(1 => array(
                            'elem 1',
                            false,
                            array(5 => array(
                                       'elem 1.1'
                                     ),
                                  7 => array(
                                       'elem 1.2'
                                     ),
                                  8 => array(
                                       'elem 1.3',
                                       false,
                                       array(13 => array(
                                                  'elem 1.3.1'
                                                ),
                                             9 => array(
                                                  'elem 1.3.2'
                                                ),
                                             15 => array(
                                                  'elem 1.3.3'
                                                ),
                                            )                                                         
                                       ),
                                  3 => array(
                                       'elem 1.4'
                                     ),
                                  12 => array(
                                       'elem 1.5'
                                     )
                                 )
                          ),
                       2 => array(
                            'elem 2',
                            true,
                            array(
                              9 => array(
                                   'elem 2.1'
                                 )
                            )
                          )
                       )
        );

Események

OnDblClick

textfield

Egyszerű egysoros szövegbeviteli mező. A NEED tulajdonsággal rá hivatkozó komponensek használhatják az empty módosítót, amellyel megadhatjuk, hogy az üres érték igaznak legyen tekintve, azaz lehet olyan függőséget tenni, hogy nem muszáj kitöltenie, de ha kitölti, akkor az a megadott típusúnak kell, hogy legyen.

Tulajdonságok

Visszaadott érték

A mező értékét adja vissza egyszerű szöveges értékként.

Értékadás

Egyenértékű a TEXT tulajdonság megváltoztatásával (Lásd)

Események

OnButtonPress, OnExit, OnDblClick

calcedit

Olyan különleges számok bevitelére alkalmas mező, amely számológép funkcióval is rendelkezik. A NEED tulajdonsággal rá hivatkozó komponensek használhatják a pos és neg módosítót, amellyel megadhatjuk, Csak a pozitív, illetve csak a negatív értékeket fogadja el. Ha nincs módosító, akkor minden nem nulla értéket elfogad.

Tulajdonságok

Visszaadott érték

A mező értékét adja vissza számként.

Értékadás

Egyenértékű a VALUE tulajdonság megváltoztatásával (Lásd)

Események

OnButtonPress, OnExit, OnDblClick

richtext

Többsoros formázható szövegmező, amely HTML és RTF kimenetet produkál.

Tulajdonságok

Visszaadott érték

A mező értékét adja vissza egyszerű szöveges értékként.

Értékadás

Egyenértékű a TEXT tulajdonság megváltoztatásával (Lásd)

Események

OnButtonPress, OnExit, OnDblClick

Megjegyzések

Figyeljünk oda a fillForm()-ra, mivel ha az adatbázisból visszaolvasott 't'-'f' értékre hívjuk a fillForm()-ot, akkor mindíg be lesz pipálva.

password

A textfield és a password közötti egyetlen különbség, hogy a password esetében a beírt szöveg "kicsillagozódik".

submit

Egyszerű nyomógomb, amely lehet szabványos Windows szerű, illetve egy képpel és egy felirattal reprezentált.

Tulajdonságok

Visszaadott érték

Nincs.

Értékadás

Egyenértékű a CAPTION tulajdonság megváltoztatásával. (Lásd)

Események

OnButtonPress

filename

Egy egyszerű egysoros beviteli mezőt jelenít meg mellette egy “Tallóz” feliratú gombbal, amivel egy fájlt lehet olvasásra betallózni. Ezzel tulajdonképpen egy fájl kijelölését végezhetjük el.

Tulajdonságok

Visszaadott érték

A visszaadott érték egy asszociatív tömböt, amelyben a következő cimkék vannak:

Értékadás

NotImplemented hibaüzenetet eredményez.

Események

Nincs.

dirname

Egy egyszerű egysoros beviteli mezőt jelenít meg mellette egy “Tallóz” feliratú gombbal, amivel egy könyvtárat lehet betallózni.

Tulajdonságok

Visszaadott érték

A visszaadott érték egyszerűen a szerkesztő mező értéke.

Értékadás

NotImplemented hibaüzenetet eredményez.

Események

Nincs.

label

Egyszerű felirat.

Tulajdonságok

Visszaadott érték

Nincs.

Értékadás

Egyenértékű a CAPTION tulajdonság megváltoztatásával (Lásd)

Események

OnButtonPress, OnDblClick

codecombo

Egy kód lista és egy legördülő lista kombinációja. Olyan esetekben használatos, ahol a felhasználó megjegyezheti a kódot, de ha nem emlékszik rá, akkor kiválaszthatja listából is.

Tulajdonságok

Visszaadott érték

A kiválasztott elem kódját (azonosítóját) adja meg.

Értékadás

Így adhatók meg az elemek. Az átadott értéknek egy tömbnek kell lennie, ahol a kulcs az elem azonosítója az érték pedig egy két elemű tömb, ahol az első elem a kód a második a megnevezés. A CDatabase osztály QueryAsArray metódusa ilyen formában adja vissza az eredményt, ha a második paramétere false (tehát a lekérdezésnek három mezője kell, hogy legyen: id, kód, név).

Események

OnChange

combobox

Legördülő lista. Másik megnevezés lehet a SELECT; a két megnevezés egyenértékű.

Ha elkezdjük beírni a szöveget, a legelső illeszkedő elemre áll. A Backspace gombbal törölhetünk egy karaktert a már beírt szövegből, a Del-el pedig kitörölhetjük az egész eddig felvitt szöveget. Az F10 gomb hatására a lista lenyílik/eltűnik.

Tulajdonságok

Visszaadott érték

A kiválasztott elem kódját (azonosítóját) adja meg.

Értékadás

Így adhatók meg a lista elemei. Az átadott értéknek egy tömbnek kell lennie, ahol a kulcs az elem azonosítója az érték pedig az elem neve. A CDatabase osztály QueryAsArray metódusa ilyen formában adja vissza az eredményt, ha a második paramétere true.

Események

OnButtonPress, OnExit

radiogroup

Rádiógomb sor.

Tulajdonságok

Visszaadott érték

A kiválasztott elem kódját (azonosítóját) adja meg.

Értékadás

Így adhatók meg a lista elemei. Az átadott értéknek egy tömbnek kell lennie, ahol a kulcs az elem azonosítója az érték pedig az elem neve. A CDatabase osztály QueryAsArray metódusa ilyen formában adja vissza az eredményt, ha a második paramétere true.

Események

OnButtonPress, OnExit

checklistbox

Checkbox lista.

Tulajdonságok

Visszaadott érték

A kiválasztott elemek azonosítóinak tömbje.

Értékadás

Így adhatók meg a lista elemei. Az átadott értéknek egy tömbnek kell lennie, ahol a kulcs az elem azonosítója az érték pedig az elem neve. A CDatabase osztály QueryAsArray metódusa ilyen formában adja vissza az eredményt, ha a második paramétere true.

Események

OnButtonPress, OnExit, OnDblClick

completeedit

Olyan szerkesztő mező, amihez megadhatunk egy listát, ami alapján kiegészíti az addig beírt szöveget. Annyiban különbözik a ComboBox-tól, hogy tetszőleges szöveget be lehet írni.

Tulajdonságok

Visszaadott érték

Ha a SIMPLE tulajdonság false, akkor az OperationData-ba egy tömb kerül, amelynek text eleme a beírt szöveget, az id eleme pedig a listából kiválasztott elem azonosítója (mint a ComboBox-nál), ha nem a listából választottunk, akkor null értéket kap. Ha a SIMPLE tulajdonság igaz, akkor az OperationData-ba a beírt szöveg kerül.

A GetValue függvény egyszerűen a beírt szöveggel tér vissza.

Értékadás

Így adhatók meg a lista elemei. Az átadott értéknek egy tömbnek kell lennie, ahol a kulcs az elem azonosítója az érték pedig az elem neve. A CDatabase osztály QueryAsArray metódusa ilyen formában adja vissza az eredményt, ha a második paramétere true.

Események

OnButtonPress, OnExit, OnDblClick

list

Szűrőtáblázat. A szűrési feltételnek megfelelően azonnal szűr. Ha a feltétel “|” karaktert tartalmaz, akkor a “|” jelekkel határolt tagokat külön-külön értelmezi, majd az eredmények uniója lesz az eredmény.

Amennyiben egy ilyen feltétel “*” vagy ”?” karaktert tartalmaz, akkor a szokásos (DOS jellegű) kifejezésként értelmezi, azaz a “*” karakter akármennyi karaktert, míg a ”?” pontosan egy karaktert helyettesíthet.

Ha a kifejezés ”=”-el kezdődik, akkor pontos egyezést keres, ha nem, akkor szó eleji egyezést (ez azt jelenti, hogy az előbbi “*”-os keresés esetén ”=” jel nélkül a kifejezés végére mindig odarak egy “*”-ot)

Ha a kifejezés ”!”-el kezdődik, akkor a feltételt negálja, azaz a szűrés eredménye a feltételnek nem megfelelő sorok lesznek.

És most néhány példa keresési feltételre:

Amennyiben a közvetlen nyomtatás és exportálás funkciót használni szeretnénk, akkor szükséges, hogy létezzenek a következő táblázatban szereplő kép fájlok (a fájlok nevei nem változtathatók):

Fájlnév Mire használt
list_csv.gif A CSV exporthoz megjelenő ikon
list_csv_filt.gif A szűrt eredmény CSV exportjához megjelenő ikon
list_print.gif A nyomtatáshoz megjelenő ikon
list_print_filt.gif A szűrt eredmény nyomtatásához megjelenő ikon
list_excel.gif Az Excel exporthoz megjelenő ikon
list_excel_filt.gif A szűrt eredmény Excel exportjához megjelenő ikon

A megadott fájlokat a DIR_IMAGES konstans által meghatározott könyvtárban keresi. Ha a DIR_IMAGES konstans nincs definiálva, akkor a képeket nem olvassa be!

Lehetséges a kijelölt sort illetve sorokat a do:listanév:all illetve a do:listanév:clear akciókkal állítani, melyek minden sort illetve egyetlen sort sem jelölnek ki, ha a MULTISELECT tulajdonság engedélyezve van. Lehetőség van még a do:listanév:azonosító hívásra is, amely mindig a megadott azonosítójú sort jelöli ki.

Tulajdonságok

Visszaadott érték

Az OperationData-ba a következő asszociatív tömböt helyezi:

A GetValue() függvény visszatérési értéke a szűrt táblázat tartalma két dimenziós tömbben, ha a Param értéke filter, egyébként a táblázat teljes tartalma két dimenziós tömbben.

Értékadás

Így adhatók meg a lista elemei. Az átadott tömb egy két dimenziós tömb, ahol a kulcs az azonosító az elem pedig egy numerikusan indexelt tömb, amely rendre az egyes oszlopok értékeit tartalmazza. A CDatabase osztály QueryAsArray metódusa ilyen formában adja vissza az eredményt, ha a második paraméter false (ami az alapérték).

Események

OnChange, OnDblClick

customselect

Működésében hasonlít a listára, de a lapon csak egy gomb / felirat látszik, amire kattintva új ablakban jelenik meg a lista, így a lapon nem foglal el feleslegesen sok helyet a lista.

Tulajdonságok

Visszaadott érték

A kiválasztott elem azonosítóját adja vissza. Ha nem lett elem kiválasztva, akkor a visszatérési érték az üres string.

Értékadás

Az értékadás teljesen megegyezik a List elem értékadásával.

Események

-

editablelist

Szerkesztő táblázat. A következő dolgokra képes:

A fókuszt speciálisan kezeli. Kétféle módosító is megadható, amellyek különböző módokban indítják a listát: new és mod. A new módosítóval jelezhetjük, hogy új sor beszúrásával induljon a lista; utána egyetlen szám állhat, ami megadja, hogy hányadik oszlopon legyen a fókusz (nullától kezdjük a számozást). A mod módosítóval jelezhetjük, hogy szerkesztő módban induljon a lista; utána két szám állhat vesszővel elválasztva: az első mondja meg az oszlopot, a második a sort (a sort az azonosítóval kell megadni)

  SetFocus('editablelist:new2');    // a lista új sor beszúrásával fog indulni és a 3. oszlopon lesz a fókusz
  SetFocus('editablelist:mod3,26'); // a lista a 26-os azonosítójú sor módosításával fog indulni és a 4. oszlopon lesz a fókusz

Tulajdonságok

Visszaadott érték

Az OperationData-ban visszaadott érték ugyanolyan formátumú, mint ahogyan a SetValue függvénnyel átadtuk neki (csak nyilván tartalmazza a módosításokat is). Az átadott indexet megőrzi, az új soroknak folytonosan új sorszámot ad.

A GetValue függvény által visszaadott érték egy olyan tömb, amelynek mindig három eleme van:

Értékadás

Így adhatók meg a lista elemei. Az átadott tömb egy két dimenziós tömb, ahol a kulcs az azonosító az elem pedig egy numerikusan indexelt tömb, amely rendre az egyes oszlopok értékeit tartalmazza. A kulcs ebben az esetben csak szám lehet! A CDatabase osztály QueryAsArray metódusa ilyen formában adja vissza az eredményt, ha a második paraméter false (ami az alapérték).

Események

OnChange

date,datetime

Dátum választó input elem. Jelen megvalósításban a két megnevezés egyenértékű, de ez a későbbiekben változhat.

Tulajdonságok

Visszatérési érték

Egy asszociatív tömb, melynek year, month és day elemeiben rendre a kiválasztott évet, hónapot és napot kapjuk meg.

Értékadás

Kétféle módon adható érték:

Események

Nincs.

memo

Tetszőleges szöveg bevitelére alkalmas több soros beviteli mező.

Tulajdonságok

Visszatérési értéke

A mező értéke szövegesen.

Értékadás

Egyenértékű a VALUE tulajdonság megváltoztatásával (Lásd)

Események

Nincs.

checkbox

A nevének megfelelően egy checkbox-ot (jelölőnégyzetet) reprezentál.

Tuljadonságok

Visszatérési érték

A visszatérési érték boolean, amely csak akkor igaz, ha a jelölőnégyzet be volt pipálva.

Értékadás

Egyenértékű a CHECKED tulajdonság megváltoztatásával, azzal a kitétellel, hogy amennyiben az átadott érték true, akkor “1” értéket kap, ellenkező esetben “0” értéket. (Lásd)

Események

OnButtonPress

radiobutton

A nevének rádiógombot reprezentál.

Tuljadonságok

Visszatérési érték

A visszatérési érték boolean, amely csak akkor igaz, ha a rádiógomb ki van jelölve.

Értékadás

Egyenértékű a CHECKED tulajdonság megváltoztatásával, azzal a kitétellel, hogy amennyiben az átadott érték true, akkor “1” értéket kap, ellenkező esetben “0” értéket. (Lásd)

Események

OnButtonPress

horizline

Egy vízszintes vonalat rajzol. A magassága elhanyagolható (2 pixel). Vizuális elválasztásra használható.

Tulajdonságok

Nincs.

Visszatérési érték

Nincs.

Értékadás

NotImplemented hibaüzenetet eredményez.

Események

Nincs.

verticalline

Egy függőleges vonalat rajzol. A szélessége elhanyagolható (2 pixel). Vizuális elválasztásra használható.

Tulajdonságok

Nincs.

Visszatérési érték

Nincs.

Értékadás

NotImplemented hibaüzenetet eredményez.

Események

Nincs.

video

Egy videót játszik le.

Tulajdonságok

Visszatérési érték

Nincs.

Értékadás

NotImplemented hibaüzenetet eredményez.

Események

Nincs.

capture

Videórögzítésre alkalmas komponens. A rögzítés elindítása külsőleg lehetséges egy do:<komponensnev>:start “handler”-rel, a leállításra pedig a do:<komponensnev>:stop handlert lehet használni. Egy képet a do:<komponensnev>:snap handlerrel lehet készíteni.

Tulajdonságok

Visszatérési érték

Nincs.

Értékadás

NotImplemented hibaüzenetet eredményez.

Események

OnChange (a rögzítés befejeztével következik be) OnButtonPress (egyedi kép készítésekor következik be)

Példa

Screen XML:

<?xml version="1.0" encoding="iso-8859-2"?>
<SCREEN NAME="default" TITLE="" TEMPLATE="" SIZEX="1" SIZEY="1">
  <ROW>
    <CONTROL TYPE="capture" COLSPAN="2" name="cap"/>
  </ROW>
  <ROW>
    <CONTROL TYPE="submit" name="start" CAPTION="start"/>
    <CONTROL TYPE="submit" name="stop" CAPTION="stop"/>
  </ROW>
</SCREEN> 

Process XML:

<?xml version="1.0" encoding="iso-8859-2"?>
<PROCESS NAME="">
  <NODE NAME="default" SCREEN="default.screen">
    <EVENT TYPE="onLoad" HANDLER="onload.handler"/>
    <EVENT TYPE="onButtonPress" SENDER="start" HANDLER="do:cap:start"/>
    <EVENT TYPE="onButtonPress" SENDER="stop" HANDLER="do:cap:stop"/>
  </NODE>
</PROCESS> 
1) Az elem neve után használható ”:”-al bevezetve egyéb információ; pl: PAGECONTROL esetén
2) az XML szabvány szerint az & nem szerepelhet egy XML-ben, ezért a kifejezés kiértékelő az & helyett elfogadja a ,-t is
3) a ! művelet egy szinten van az és művelettel
4) amennyiben hosszabb stringet adunk meg, akkor az első karakterét veszi figyelembe