2. fejezet - OTRS belsőségek - hogyan működik

Tartalom

Beállítási mechanizmus
Defaults.pm: az OTRS alapértelmezett beállításai
Automatikusan előállított beállítófájlok
XML beállítási lehetőségek
Az XML beállítási változók típusai
Hozzáférés a beállítási lehetőségekhez futási időben
Adatbázis mechanizmus
Hogyan működik
SQL
XML
Adatbázis-meghajtók
Támogatott adatbázisok
Naplózó mechanizmus
Felszínek
Felszín alapok
Hogyan töltődnek be a felszínek
Új felszín létrehozása
A CSS és JavaScript „betöltő”
Hogyan működik
Alapvető működés
A betöltő beállítása: JavaScript
Közös JavaScript
Modulspecifikus JavaScript
A betöltő beállítása: CSS
Közös CSS
Modulspecifikus CSS
Sablonozó mechanizmus
Sablonparancsok
Dinamikus adatok beszúrása
Honosítási parancsok
Sablonfeldolgozó parancsok
[% WRAPPER JSOnDocumentComplete %]...[% END %]
Egy sablonfájl használata
Honosítási és fordítási mechanizmus
Lefordítható szövegek megjelölése a forrásfájlokban
Lefordítható szövegek összegyűjtése a fordítási adatbázisba
Alapértelmezett keretrendszer fordítási fájl
Egyéni fordítási fájl
Maga a fordítási folyamat
A kódból lefordított adatok használata

Beállítási mechanizmus

Az OTRS dedikált mechanizmussal érkezik a konfigurációs beállítások kezeléséhez egy grafikus felületen (rendszerbeállításokon) keresztül. Ez a szakasz azt írja le, hogy hogyan működik belsőleg, és hogyan adhat meg új konfigurációs beállításokat, vagy hogyan változtathatja meg a meglévő alapértelmezett értékeket.

Defaults.pm: az OTRS alapértelmezett beállításai

Az OTRS alapértelmezett beállítófájlja a Kernel/Config/Defaults.pm. Ezt a fájlt érintetlenül kell hagyni, mivel automatikusan frissítésre kerül a keretrendszer frissítéseikor.

Automatikusan előállított beállítófájlok

A Kernel/Config/Files mappában néhány automatikusan előállított beállítófájl található:

ZZZAAuto.pm              # Az XML beállítások alapértelmezett értékeinek Perl gyorsítótára
ZZZACL.pm                # Az ACL beállítások Perl gyorsítótára az adatbázisból
ZZZAuto.pm               # A felhasználó által a rendszerbeállításokban megváltoztatott
                         #   összes beállítást tartalmazza
ZZZProcessManagement.pm  # A ProcessManagement beállítások Perl gyorsítótára az adatbázisból

Ezeket a fájlokat sosem szabad kézzel megváltoztatni, mivel az OTRS felülírja azokat.

XML beállítási lehetőségek

Az OTRS-ben azok a beállítási lehetőségek, amelyeket az adminisztrátor a rendszerbeállításokon keresztül tud beállítani, XML-fájlokban vannak megadva egy speciális formátumban. Az XML beállítófájlok az $OTRS_HOME/Kernel/Config/Files/*.xml fájlokban találhatók. A Kernel/Config/Files/ZZZAAuto.pm fájl annak az XML-nek a gyorsítótárazott Perl-verziója, amely az összes beállítást tartalmazza az alapértelmezett értékükkel. Ez (újra) előállítható a bin/otrs.Console.pl Maint::Config::Rebuild parancsfájllal. Az adminisztrátor által elvégzett összes változtatás a Kernel/Config/Files/ZZZAuto.pm fájlban van eltárolva.

Az egyes XML beállítófájloknak a következő elrendezésük van:

<?xml version="1.0" encoding="utf-8" ?>
<otrs_config version="1.0" init="Changes">

    <!-- itt lesznek a beállítási elemek -->

</otrs_config>
            

Az init attribútum azt írja le, hogy honnan kell a beállítási lehetőségeket betölteni. Különböző szintek érhetők el, és a következő sorrendben lesznek betöltve/felülírva: Framework (a keretrendszer beállításaihoz, például munkamenet beállítás), Application (az alkalmazás beállításaihoz, például jegybeállítások), Config (kiterjesztésekhez a meglévő alkalmazásoknál, például ITSM beállítások) és Changes (egyéni fejlesztésekhez, például keretrendszer vagy jegybeállítások felülírásához).

Ha beállítási lehetőségeket szeretne hozzáadni, akkor itt egy példa:

<ConfigItem Name="Ticket::Hook" Required="1" Valid="1" ConfigLevel="300">
    <Description Lang="en">The identifier for a ticket. The default is Ticket#.</Description>
    <Description Lang="de">Ticket-Identifikator. Als Standard wird Ticket# verwendet.</Description>
    <Group>Ticket</Group>
    <SubGroup>Core::Ticket</SubGroup>
    <Setting>
        <String Regex="">Ticket#</String>
    </Setting>
</ConfigItem>
            

Ha a required jellemző 1 értékre van állítva, akkor a beállítási változót tartalmazza, és nem lehet letiltani.

Ha a valid jellemző 1 értékre van állítva, akkor a beállítási változó aktív. Ha 0 értékre van állítva, akkor a beállítási változó inaktív.

Ha az opcionális ConfigLevel attribútum be van állítva, akkor a beállítási változót esetleg nem szerkesztheti az adminisztrátor a saját beállítási szintjétől függően. A ConfigLevel beállítási változó állítja be az adminisztrátor szakmai tapasztalatának szintjét. Lehet 100 (Szakértő), 200 (Speciális) vagy 300 (Kezdő). Iránymutatásként, hogy mely beállítási szintet kell egy lehetőséghez megadni, az az ajánlott, hogy az összes olyan lehetőségnek, amelyet külső interakció beállításával kell megtenni (mint például Sendmail, LDAP, SOAP és egyebek), legalább 200 (Speciális) beállítási szintet kell kapnia.

A beállítási változó a Setting elemben van meghatározva.

Az XML beállítási változók típusai

Az XML konfigurációs beállítások különféle típusú változókat támogatnak.

Szöveg

<Setting>
    <String Regex="" Check="File"></String>
</Setting>
                    

Egy beállítási elem számokhoz és egysoros szövegekhez. Az érvényesség ellenőrzése egy reguláris kifejezéssel lehetséges (opcionális). Az opcionális Check attribútum ellenőrzi az elemeket a fájlrendszeren.

<Setting>
    <String Translatable="1">Saját beállítás</String>
</Setting>
                    

Az opcionális Translatable attribútum jelöli meg ezt a beállítást fordíthatóként, amely azt fogja eredményezni, hogy fel lesz véve az OTRS fordítási fájljaiba. Ezt az attribútumot bármely címkére el lehet helyezni (lásd lent is).

Szövegdoboz

Egy beállítási elem többsoros szöveghez.

<Setting>
    <TextArea></TextArea>
</Setting>
                    

Lehetőségek

Ez a beállítási elem előre beállított értékeket nyújt egy legördülő menüként.

<Setting>
    <Option SelectedID="0">
        <Item Key="0" Translatable="1">Nem</Item>
        <Item Key="1" Translatable="1">Igen</Item>
    </Option>
</Setting>
                    

Kiválaszthatja az alapértelmezett értéket is az „érték” szerint:

<Setting>
    <Option SelectedValue="Nem">
        <Item Key="0" Translatable="1">Nem</Item>
        <Item Key="1" Translatable="1">Igen</Item>
    </Option>
</Setting>
                    

Tömb

Ezzel a beállítási elemmel tömbök jeleníthetők meg.

<Setting>
    <Array>
        <Item>Első elem</Item>
        <Item>Második elem</Item>
    </Array>
</Setting>
                    

Kivonat

Ezzel a beállítási elemmel kivonatok jeleníthetők meg.

<Setting>
    <Hash>
        <Item Key="1" Translatable="1">1. érték</Item>
        <Item Key="2" Translatable="1">2. érték</Item>
    </Hash>
</Setting>
                    

Egy kivonat tartalmazhat beágyazott tömböket vagy kivonatokat is.

<Setting>
    <Hash>
        <Item Key=""></Item>
        <Item Key="">
            <Hash>
                <Item Key=""></Item>
                <Item Key=""></Item>
            </Hash>
        </Item>
        <Item Key="">
            <Array>
                <Item></Item>
                <Item></Item>
            </Array>
        </Item>
        <Item Key=""></Item>
    </Hash>
</Setting>
                    

FrontendModuleReg (NavBar)

Modul regisztráció az ügyintézői felülethez:

<Setting>
    <FrontendModuleReg>
        <Description>Ügyintéző vezérlőpult</Description>
        <Title></Title>
        <NavBarName>Vezérlőpult</NavBarName>
        <NavBar>
            <Description Translatable="1"></Description>
            <Name Translatable="1">Vezérlőpult</Name>
            <Link>Action=AgentDashboard</Link>
            <LinkOption></LinkOption>
            <NavBar>Dashboard</NavBar>
            <Type>Menu</Type>
            <Block>ItemArea</Block>
            <AccessKey>d</AccessKey>
            <Prio>50</Prio>
        </NavBar>
        <Loader>
            <CSS>Core.Agent.Dashboard.css</CSS>
            <CSS>Core.AllocationList.css</CSS>
            <CSS>thirdparty/fullcalendar-1.6.1/fullcalendar.css</CSS>
            <CSS>thirdparty/d3js/nv.d3.css</CSS>
            <JavaScript>thirdparty/flot-0.8.3/excanvas.js</JavaScript>
            <JavaScript>thirdparty/flot-0.8.3/jquery.flot.js</JavaScript>
            <JavaScript>thirdparty/fullcalendar-1.6.1/fullcalendar.min.js</JavaScript>
            <JavaScript>thirdparty/d3js/d3.v3.min.js</JavaScript>
            <JavaScript>thirdparty/d3js/nv.d3.min.js</JavaScript>
            <JavaScript>thirdparty/d3js/models/OTRSmultiBarChart.js</JavaScript>
            <JavaScript>thirdparty/d3js/models/OTRSstackedAreaChart.js</JavaScript>
            <JavaScript>Core.UI.Chart.js</JavaScript>
            <JavaScript>Core.UI.AdvancedChart.js</JavaScript>
            <JavaScript>Core.UI.AllocationList.js</JavaScript>
            <JavaScript>Core.Agent.TableFilters.js</JavaScript>
            <JavaScript>Core.Agent.Dashboard.js</JavaScript>
        </Loader>
    </FrontendModuleReg>
</Setting>
                    

FrontendModuleReg (NavBarModule)

Modul regisztráció az adminisztrátori felülethez:

<Setting>
    <FrontendModuleReg>
        <Group>admin</Group>
        <Description>Admin</Description>
        <Title Translatable="1">Ügyfelek &lt;-&gt; Csoportok</Title>
        <NavBarName>Admin</NavBarName>
        <NavBarModule>
            <Module>Kernel::Output::HTML::NavBarModuleAdmin</Module>
            <Name Translatable="1">Ügyfél-felhasználó &lt;-&gt; Csoportok</Name>
            <Description Translatable="1">Ügyfél-felhasználó hozzákapcsolása csoportokhoz.</Description>
            <Block>Customer</Block>
            <Prio>400</Prio>
        </NavBarModule>
    </FrontendModuleReg>
</Setting>
                    

Hozzáférés a beállítási lehetőségekhez futási időben

Olvashatja és írhatja (egy kérésnél) a beállítási lehetőségeket a Kernel::Config alapmodulon keresztül.

Ha egy beállítási lehetőséget szeretne olvasni:

my $ConfigOption = $Kernel::OM->Get('Kernel::Config')->Get('Prefix::Option');
            

Ha meg szeretne változtatni egy beállítási lehetőséget futási időben, és csak ennél az egy kérésnél/folyamatnál:

$Kernel::OM->Get('Kernel::Config')->Set(
    Key => 'Prefix::Option'
    Value => 'Valami új érték',
);