Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 90baed86

Von Moritz Bunkus vor fast 13 Jahren hinzugefügt

  • ID 90baed86f02291ceb9a1f2bcf9300a3560817f49
  • Vorgänger 539f5981
  • Nachfolger 27f054b7

Diverse Fixes und Aktualisierungen

Unterschiede anzeigen:

doc/dokumentation.xml
45 45
        ohne große Probleme auf den derzeit aktuellen verbreiteten
46 46
        Distributionen läuft.</para>
47 47

  
48
        <para>Anfang 2011 sind das folgende Systeme:</para>
48
        <para>Anfang 2012 sind das folgende Systeme, von denen bekannt ist, dass Lx-Office auf ihnen läuft:</para>
49 49

  
50 50
        <itemizedlist>
51 51
          <listitem>
52
            <para>Ubuntu 8.04 LTS Hardy Heron</para>
52
            <para>Ubuntu 8.04 LTS Hardy Heron, 10.04 LTS Lucid Lynx bis 11.10 Oneiric Ocelot</para>
53 53
          </listitem>
54 54

  
55 55
          <listitem>
56
            <para>Ubuntu 9.10 Karmic Koala</para>
56
            <para>Debian 5.0 Lenny und 6.0 Squeeze</para>
57 57
          </listitem>
58 58

  
59 59
          <listitem>
60
            <para>Ubuntu 10.04 Lucid Lynx</para>
61
          </listitem>
62

  
63
          <listitem>
64
            <para>Ubuntu 10.10 Maverick Meerkat</para>
65
          </listitem>
66

  
67
          <listitem>
68
            <para>Debian 5.0 Lenny</para>
69
          </listitem>
70

  
71
          <listitem>
72
            <para>Debian 6.0 Squeeze</para>
73
          </listitem>
74

  
75
          <listitem>
76
            <para>openSUSE 11.2</para>
77
          </listitem>
78

  
79
          <listitem>
80
            <para>openSUSE 11.3</para>
60
            <para>openSUSE 11.2 und 11.3</para>
81 61
          </listitem>
82 62

  
83 63
          <listitem>
......
85 65
          </listitem>
86 66

  
87 67
          <listitem>
88
            <para>Fedora 13</para>
89
          </listitem>
90

  
91
          <listitem>
92
            <para>Fedora 14</para>
68
            <para>Fedora 13 bis 15</para>
93 69
          </listitem>
94 70
        </itemizedlist>
95 71

  
96
        <para>Für die debianoiden Betriebssysteme existiert ein .deb, das
97
        deutlich einfacher zu installieren ist.</para>
98

  
99 72
        <para>Ubuntu 8.04 LTS hat zusätzlich die Schwierigkeit, dass die
100 73
        Module im Archiv recht alt sind, und das viele der benötigten Module
101 74
        nicht einfach zu installieren sind. Dafür sollte es kurz nach dem
......
113 86
        <para>Zur Installation das Paket in das entpackte Lx-Office
114 87
        Verzeichnis entpacken:</para>
115 88

  
116
        <para><literal>tar xzf lx-erp-perl-libs-compat-v2.tar.gz
117
        /path/to/lx-office/</literal></para>
89
        <programlisting>tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/</programlisting>
118 90

  
119 91
        <para>Zusätzlich müssen dann noch die folgenden Pakete installiert
120 92
        weerden</para>
121 93

  
122
        <para><literal>libbit-vector-perl libsub-exporter-perl libclone-perl
123
        libclass-factory-util-perl</literal></para>
94
        <programlisting>apt-get install libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl</programlisting>
124 95

  
125 96
        <para>Danach sollte der Installationscheck (siehe <xref
126 97
        linkend="Pakete"/>) die enthaltenen Pakete erkennen.</para>
......
244 215

  
245 216
        <para>Für Debian oder Ubuntu benötigen Sie diese Pakete:</para>
246 217

  
247
        <para><literal>apache2 postgresql libparent-perl libarchive-zip-perl
248
        libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl
249
        libemail-address-perl liblist-moreutils-perl libpdf-api2-perl
250
        librose-object-perl librose-db-perl librose-db-object-perl
251
        libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl
252
        libxml-writer-perl libyaml-perl libconfig-std-perl
253
        libparams-validate-perl libjson-perl</literal></para>
218
        <programlisting>apt-get install apache2 postgresql libparent-perl libarchive-zip-perl \
219
  libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl \
220
  libemail-address-perl liblist-moreutils-perl libpdf-api2-perl \
221
  librose-object-perl librose-db-perl librose-db-object-perl \
222
  libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl \
223
  libxml-writer-perl libyaml-perl libconfig-std-perl \
224
  libparams-validate-perl libjson-perl</programlisting>
254 225

  
255 226
        <para>Für Fedora Core benötigen Sie diese Pakete:</para>
256 227

  
257
        <para><literal>httpd postgresql-server perl-parent perl-DateTime
258
        perl-DBI perl-DBD-Pg perl-Email-Address perl-List-MoreUtils
259
        perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object
260
        perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI
261
        perl-XML-Writer perl-YAML</literal></para>
228
        <programlisting>yum install httpd postgresql-server perl-parent perl-DateTime \
229
  perl-DBI perl-DBD-Pg perl-Email-Address perl-List-MoreUtils \
230
  perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object \
231
  perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \
232
  perl-XML-Writer perl-YAML</programlisting>
262 233

  
263 234
        <para>Für OpenSuSE benötigen Sie diese Pakete:</para>
264 235

  
265
        <para><literal>apache2 postgresql-server perl-Archive-Zip
266
        perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-List-MoreUtils
267
        perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv
268
        perl-URI perl-XML-Writer perl-YAML</literal></para>
236
        <programlisting>zypper install apache2 postgresql-server perl-Archive-Zip \
237
  perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-List-MoreUtils \
238
  perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \
239
  perl-URI perl-XML-Writer perl-YAML</programlisting>
269 240

  
270 241
        <para>Bei openSuSE 11 ist <literal>parent</literal> bereits enthalten,
271 242
        und braucht nicht nachinstalliert werden. Die
......
284 255
           xreflabel="Manuelle Installation des Programmpaketes">
285 256
      <title>Manuelle Installation des Programmpaketes</title>
286 257

  
287
      <para>Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.2.tgz) wird
258
      <para>Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.3.tgz) wird
288 259
      im Dokumentenverzeichnis des Webservers (z.B.
289 260
      <filename>/var/www/html/</filename>,
290 261
      <filename>/srv/www/htdocs</filename> oder
......
399 370
dbcharset = UTF-8</programlisting>
400 371

  
401 372
       <para>
402
        Nutzt man wiederkehrende Rechnungen, kann man unter <literal>[periodic_invoices]</literal> den Login eines Benutzers angeben, der
373
        Nutzt man wiederkehrende Rechnungen, kann man unter <varname>[periodic_invoices]</varname> den Login eines Benutzers angeben, der
403 374
        nach Erstellung der Rechnungen eine entsprechende E-Mail mit Informationen über die erstellten Rechnungen bekommt.
404 375
       </para>
405 376

  
406 377
       <para>
407 378
        Nutzt man den <link linkend="config.task-server">Taskserver</link> für <link
408
        linkend="features.periodic-invoices">wiederkehrende Rechnungen</link>, muss unter <literal>[task_server]</literal> ein Login eines
379
        linkend="features.periodic-invoices">wiederkehrende Rechnungen</link>, muss unter <varname>[task_server]</varname> ein Login eines
409 380
        Benutzers angegeben werden, mit dem sich der Taskserver an Lx-Office bei der Datenbank anmeldet, die dem Benutzer zugewiesen ist.
410 381
       </para>
411 382

  
412 383
       <para>
413
        Für Entwickler finden sich unter <literal>[debug]</literal> wichtige Funktionen, um die Fehlersuche zu erleichtern.
384
        Für Entwickler finden sich unter <varname>[debug]</varname> wichtige Funktionen, um die Fehlersuche zu erleichtern.
414 385
       </para>
415 386
     </sect2>
416 387

  
......
420 391
      <para>
421 392
       In älteren Lx-Office Versionen gab es im Verzeichnis <filename>config</filename> die Dateien <filename>authentication.pl</filename>
422 393
       und <filename>lx-erp.conf</filename>, die jeweils Perl-Dateien waren. Es gab auch die Möglichkeit, eine lokale Version der
423
       Konfigurationsdatei zu erstellen (<literal>lx-erp-local.conf</literal>). Dies ist ab 2.6.3 nicht mehr möglich, aber auch nicht mehr
394
       Konfigurationsdatei zu erstellen (<filename>lx-erp-local.conf</filename>). Dies ist ab 2.6.3 nicht mehr möglich, aber auch nicht mehr
424 395
       nötig.
425 396
      </para>
426 397

  
......
442 413

  
443 414
        <para>Lx-Office kann komplett mit UTF-8 als Zeichensatz verwendet
444 415
        werden. Dabei gibt es zwei Punkte zu beachten: PostgreSQL muss in
445
        Version 8.0 oder neuer benutzt werden, und der
416
        Version 8.2 oder neuer benutzt werden, und der
446 417
        PostgreSQL-Datenbankcluster muss ebenfalls mit UTF-8 als Locale
447 418
        angelegt worden sein.</para>
448 419

  
449
        <para>Dieses ist kann überprüft werden: ist das Encoding der Datenbank
450
        “template1” “UTF8”, so kann auch Lx-Office mit UTF-8 betrieben werden.
451
        Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
452
        UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
453
        Ubuntu kann dies z.B. mit dem folgenden Befehl getan werden:</para>
420
        <para>Dieses ist kann überprüft werden: ist das Encoding der Datenbank “template1” “UTF8”, so kann auch Lx-Office mit UTF-8
421
        betrieben werden.  Andernfalls ist es notwendig, einen neuen Datenbankcluster mit UTF-8-Encoding anzulegen und diesen zu
422
        verwenden. Unter Debian und Ubuntu kann dies z.B. für PostgreSQL 8.2 mit dem folgenden Befehl getan werden:</para>
454 423

  
455
        <para><literal>pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8
456
        8.2 clustername</literal></para>
424
        <programlisting>pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername</programlisting>
457 425

  
458
        <para>Die Datenbankversionsnummer muss an die tatsächlich verwendete
459
        Versionsnummer angepasst werden.</para>
426
        <para>Die Datenbankversionsnummer muss an die tatsächlich verwendete Versionsnummer angepasst werden.</para>
460 427

  
461 428
        <para>Unter anderen Distributionen gibt es ähnliche Methoden.</para>
462 429

  
......
464 431
        ist ein Neuanlegen eines weiteren Clusters nicht möglich, so kann
465 432
        Lx-Office mit ISO-8859-15 als Encoding betrieben werden.</para>
466 433

  
467
        <para>Das Encoding einer Datenbank kann in <literal>psql</literal> mit
468
        <literal>\l</literal> geprüft werden.</para>
434
        <para>Das Encoding einer Datenbank kann in <command>psql</command> mit <literal>\l</literal> geprüft werden.</para>
469 435
      </sect2>
470 436

  
471 437
      <sect2 id="Änderungen-an-Konfigurationsdateien">
472 438
        <title>Änderungen an Konfigurationsdateien</title>
473 439

  
474
        <para>In der Datei <literal>postgresql.conf</literal>, die je nach
440
        <para>In der Datei <filename>postgresql.conf</filename>, die je nach
475 441
        Distribution in verschiedenen Verzeichnissen liegen kann (z.B.
476
        <literal>/var/lib/pgsql/data/</literal> oder
477
        <literal>/etc/postgresql/</literal>, muss sichergestellt werden, dass
442
        <filename>/var/lib/pgsql/data/</filename> oder
443
        <filename>/etc/postgresql/</filename>, muss sichergestellt werden, dass
478 444
        TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
479
        Parameter <literal>listen_address</literal> gesteuert. Laufen
445
        Parameter <varname>listen_address</varname> gesteuert. Laufen
480 446
        PostgreSQL und Lx-Office auf demselben Rechner, so kann dort der Wert
481 447
        <literal>localhost</literal> verwendet werden. Andernfalls müssen
482 448
        Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden,
483
        was mit dem Wert \<literal>*</literal> geschieht.</para>
449
        was mit dem Wert <literal>*</literal> geschieht.</para>
484 450

  
485
        <para>In der Datei <literal>pg_hba.conf</literal>, die im gleichen
486
        Verzeichnis wie die <literal>postgresql.conf</literal> zu finden sein
451
        <para>In der Datei <filename>pg_hba.conf</filename>, die im gleichen
452
        Verzeichnis wie die <filename>postgresql.conf</filename> zu finden sein
487 453
        sollte, müssen die Berichtigungen für den Zugriff geändert werden.
488 454
        Hier gibt es mehrere Möglichkeiten. Eine besteht darin, lokale
489
        Verbindungen immer zuzulassen</para>
455
        Verbindungen immer zuzulassen:</para>
490 456

  
491
        <para><literal>local all all trust host all all 127.0.0.1 255.0.0.0
492
        trust</literal></para>
457
        <programlisting>local all all trust
458
host all all 127.0.0.1 255.0.0.0 trust</programlisting>
493 459

  
494 460
        <para>Besser ist es, für eine bestimmte Datenbank Zugriff nur per
495 461
        Passwort zuzulassen. Beispielsweise:</para>
496 462

  
497
        <para><literal>local all lxoffice password host all lxoffice 127.0.0.1
498
        255.255.255.255 password</literal></para>
463
        <programlisting>local all lxoffice password
464
host all lxoffice 127.0.0.1 255.255.255.255 password</programlisting>
499 465

  
500 466
        <!--  -->
501 467
      </sect2>
......
508 474
        Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an, und
509 475
        führen Sie die folgenden Kommandos aus:</para>
510 476

  
511
        <para><literal>create language 'plpgsql';</literal></para>
512

  
513
        <para>Achtung: In älteren Postgresversionen (vor 8.0) muss der Handler
514
        für die Sprache manuell anlelegt werden, diese Versionen werden aber
515
        nicht mehr offiziell von Lx-Office unterstützt. Dafür dann die
516
        folgenden Kommandos:</para>
517

  
518
        <para><literal>create function plpgsql_call_handler () returns opaque
519
        as '/usr/lib/pgsql/plpgsql.so' language 'c'; create language 'plpgsql'
520
        handler plpgsql_call_handler lancompiler 'pl/pgsql';</literal></para>
521

  
522
        <para>Bitte beachten Sie, dass der Pfad zur Datei
523
        <literal>plpgsql.so</literal> von Distribution zu Distribution
524
        verschiedlich sein kann. Bei Debian/Ubuntu befindet sie sich unter
525
        <literal>/usr/lib/postgresql/lib/plpgsql.so</literal>.</para>
526

  
477
        <programlisting>create language 'plpgsql';</programlisting>
527 478
        <!--  -->
528 479
      </sect2>
529 480

  
......
535 486
        anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen
536 487
        können:</para>
537 488

  
538
        <para><literal>su - postgres createuser -d -P
539
        lxoffice</literal></para>
489
        <programlisting>su - postgres createuser -d -P lxoffice</programlisting>
540 490

  
541 491
        <para>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern
542 492
        Sie den evtl. voreingestellten Benutzer “postgres” auf “lxoffice” bzw.
......
564 514
        anderen Datei hinzu, die beim Starten des Webservers eingelesen
565 515
        wird:</para>
566 516

  
567
        <para><literal> AddHandler cgi-script .pl Alias /lx-erp/
568
        /var/www/lx-erp/ &lt;Directory /var/www/lx-erp&gt; Options ExecCGI
569
        Includes FollowSymlinks &lt;/Directory&gt; &lt;Directory
570
        /var/www/lx-erp/users&gt; Order Deny,Allow Deny from All
571
        &lt;/Directory&gt; </literal></para>
517
        <programlisting>AddHandler cgi-script .pl
518
Alias /lx-erp/ /var/www/lx-erp/
519

  
520
&lt;Directory /var/www/lx-erp&gt;
521
 Options ExecCGI
522
 Includes FollowSymlinks
523
&lt;/Directory&gt;
524

  
525
&lt;Directory /var/www/lx-erp/users&gt;
526
 Order Deny,Allow
527
 Deny from All
528
&lt;/Directory&gt;</programlisting>
572 529

  
573 530
        <para>Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher
574 531
        das Lx-Office-Archiv entpacket haben.</para>
575 532

  
576
        <para>Achtung: Vor den einzelnen Optionen muss bei einigen
577
        Distributionen ein Plus ‘<literal>+</literal>’ gesetzt werden.</para>
533
        <note>
534
         <para>Vor den einzelnen Optionen muss bei einigen Distributionen ein Plus ‘<literal>+</literal>’ gesetzt werden.</para>
535
        </note>
578 536

  
579 537
        <para>Auf einigen Webservern werden manchmal die Grafiken und
580 538
        Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft
581 539
        geholfen, die folgende Option in die Konfiguration aufzunehmen:</para>
582 540

  
583
        <para><literal>EnableSendfile Off</literal></para>
541
        <programlisting>EnableSendfile Off</programlisting>
584 542
      </sect2>
585 543

  
586 544
      <sect2 id="Apache-Konfiguration.FCGI"
......
644 602
          verwendet.</para>
645 603

  
646 604
          <warning>
647
            <para>FCGI 0.69 und höher ist extrem strict in der Behandlung von
648
            Unicode, und verweigert bestimmte Eingaben von Lx-Office. Falls es
649
            Probleme mit Umlauten in Ihrere Installation gibt, muss auf die
650
            Vorgängerversion FCGI 0.68 ausgewichen werden.</para>
651
          </warning>
605
            <para>
606
             FCGI 0.69 und höher ist extrem strict in der Behandlung von Unicode, und verweigert bestimmte Eingaben von Lx-Office. Falls es
607
             Probleme mit Umlauten in Ihrere Installation gibt, muss auf die Vorgängerversion FCGI 0.68 ausgewichen werden.
608
            </para>
652 609

  
653
          <para>Mit CPAN lässt sie sich die Vorgängerversion wie folgt
654
          installieren:</para>
610
            <para>
611
             Mit CPAN lässt sie sich die Vorgängerversion wie folgt installieren:
612
            </para>
655 613

  
656
          <programlisting>force install M/MS/MSTROUT/FCGI-0.68.tar.gz</programlisting>
614
            <programlisting>force install M/MS/MSTROUT/FCGI-0.68.tar.gz</programlisting>
615
          </warning>
657 616
        </sect3>
658 617

  
659 618
        <sect3 id="Apache-Konfiguration.FCGI.Konfiguration">
......
676 635
          dem Installationspfad von Lx-Office im Dateisystem
677 636
          ("<filename>/path/to/lx-office-erp</filename>") und der URL
678 637
          unterschieden, unter der Lx-Office im Webbrowser erreichbar ist
679
          ("<filename>/web/path/to/lx-office-erp</filename>").</para>
638
          ("<filename>/url/for/lx-office-erp</filename>").</para>
680 639

  
681 640
          <para>Folgender Konfigurationsschnipsel funktioniert mit
682 641
          mod_fastcgi:</para>
683 642

  
684
          <programlisting>AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fcgi
685
Alias       /web/path/to/lx-office-erp/          /path/to/lx-office-erp/
643
          <programlisting>AliasMatch ^/url/for/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fcgi
644
Alias       /url/for/lx-office-erp/          /path/to/lx-office-erp/
686 645

  
687 646
&lt;Directory /path/to/lx-office-erp&gt;
688 647
  AllowOverride All
......
705 664
          <para>Das ganze sollte dann so aussehen:</para>
706 665

  
707 666
          <programlisting>AddHandler fcgid-script .fpl
708
AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
709
Alias       /web/path/to/lx-office-erp/          /path/to/lx-office-erp/
667
AliasMatch ^/url/for/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
668
Alias       /url/for/lx-office-erp/          /path/to/lx-office-erp/
710 669
FcgidMaxRequestLen 10485760
711 670

  
712 671
&lt;Directory /path/to/lx-office-erp&gt;
......
731 690
          wie oben beschrieben, die URLs werden aber umgeleitet:</para>
732 691

  
733 692
          <programlisting># Zugriff über CGI
734
Alias       /web/path/to/lx-office-erp                /path/to/lx-office-erp
693
Alias       /url/for/lx-office-erp                /path/to/lx-office-erp
735 694

  
736 695
# Zugriff mit mod_fcgid:
737
AliasMatch ^/web/path/to/lx-office-erp-fcgid/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
738
Alias       /web/path/to/lx-office-erp-fcgid/          /path/to/lx-office-erp/</programlisting>
739

  
740
          <para>Dann ist unter
741
          <filename>/web/path/to/lx-office-erp/</filename> die normale Version
742
          erreichbar, und unter
743
          <constant>/web/path/to/lx-office-erp-fcgid/</constant> die
744
          FastCGI-Version.</para>
696
AliasMatch ^/url/for/lx-office-erp-fcgid/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
697
Alias       /url/for/lx-office-erp-fcgid/          /path/to/lx-office-erp/</programlisting>
698

  
699
          <para>Dann ist unter <filename>/url/for/lx-office-erp/</filename> die normale Version erreichbar, und unter
700
          <constant>/url/for/lx-office-erp-fcgid/</constant> die FastCGI-Version.</para>
745 701
        </sect3>
746 702
      </sect2>
747 703
    </sect1>
......
764 720
        <filename>config/lx_office.conf</filename>. Die dort verfügbaren
765 721
        Optionen sind:</para>
766 722

  
767
        <itemizedlist>
723
        <variablelist>
724
         <varlistentry>
725
          <term><varname>login</varname></term>
768 726
          <listitem>
769
            <para><literal>login</literal>: gültiger Lx-Office-Benutzername,
770
            der benutzt wird, um die zu verwendende Datenbankverbindung
771
            auszulesen. Der Benutzer muss in der Administration angelegt
772
            werden. Diese Option muss angegeben werden.</para>
727
           <para>
728
            gültiger Lx-Office-Benutzername, der benutzt wird, um die zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss in
729
            der Administration angelegt werden. Diese Option muss angegeben werden.
730
           </para>
773 731
          </listitem>
732
         </varlistentry>
774 733

  
734
         <varlistentry>
735
          <term><varname>run_as</varname></term>
775 736
          <listitem>
776
            <para><literal>run_as</literal>: Wird der Server vom
777
            Systembenutzer <literal>root</literal> gestartet, so wechselt er
778
            auf den mit <literal>run_as</literal> angegebenen Systembenutzer.
779
            Der Systembenutzer muss dieselben Lese- und Schreibrechte haben,
780
            wie auch der Webserverbenutzer (siehe see <xref
781
            linkend="Manuelle-Installation-des-Programmpaketes"/>). Daher ist
782
            es sinnvoll, hier denselben Systembenutzer einzutragen, unter dem
783
            auch der Webserver läuft.</para>
737
            <para>
738
             Wird der Server vom Systembenutzer <literal>root</literal> gestartet, so wechselt er auf den mit <literal>run_as</literal>
739
             angegebenen Systembenutzer.  Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer
740
             (siehe see <xref linkend="Manuelle-Installation-des-Programmpaketes"/>). Daher ist es sinnvoll, hier denselben Systembenutzer
741
             einzutragen, unter dem auch der Webserver läuft.
742
            </para>
784 743
          </listitem>
744
         </varlistentry>
785 745

  
746
         <varlistentry>
747
          <term><varname>debug</varname></term>
786 748
          <listitem>
787
            <para><literal>debug</literal>: Schaltet Debug-Informationen an
788
            und aus.</para>
749
            <para>
750
             Schaltet Debug-Informationen an und aus.
751
            </para>
789 752
          </listitem>
790
        </itemizedlist>
753
         </varlistentry>
754
        </variablelist>
791 755
      </sect2>
792 756

  
793 757
      <sect2 id="Einbinden-in-den-Boot-Prozess">
......
818 782
            <listitem>
819 783
              <para>Debian-basierende Systeme:</para>
820 784

  
821
              <para><literal>update-rc.d lx-office-task-server defaults # Nur
822
              bei Debian Squeeze und neuer: insserv
823
              lx-office-task-server</literal></para>
785
              <programlisting>update-rc.d lx-office-task-server defaults
786
# Nur bei Debian Squeeze und neuer:
787
insserv lx-office-task-server</programlisting>
824 788
            </listitem>
825 789

  
826 790
            <listitem>
827 791
              <para>OpenSuSE und Fedora Core:</para>
828 792

  
829
              <para><literal>chkconfig --add
830
              lx-office-task-server</literal></para>
793
              <programlisting>chkconfig --add lx-office-task-server</programlisting>
831 794
            </listitem>
832 795
          </itemizedlist>
833 796

  
834
          <para>Danach kann der Task-Server mit dem folgenden Befehl gestartet
835
          werden: <literal>/etc/init.d/lx-office-task-server
836
          start</literal></para>
797
          <para>Danach kann der Task-Server mit dem folgenden Befehl gestartet werden: <command>/etc/init.d/lx-office-task-server
798
          start</command></para>
837 799
        </sect3>
838 800

  
839 801
        <sect3>
......
845 807
          Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile
846 808
          <literal>exec ....</literal>).</para>
847 809

  
848
          <para>Danach kann der Task-Server mit dem folgenden Befehl gestartet
849
          werden: <literal>service lx-office-task-server
850
          start</literal></para>
810
          <para>Danach kann der Task-Server mit dem folgenden Befehl gestartet werden: <command>service lx-office-task-server
811
          start</command></para>
851 812
        </sect3>
852 813
      </sect2>
853 814

  
......
856 817

  
857 818
        <para>Der Task-Server wird wie folgt kontrolliert:</para>
858 819

  
859
        <para><literal>./scripts/task_server.pl Befehl</literal></para>
820
        <programlisting>./scripts/task_server.pl Befehl</programlisting>
860 821

  
861 822
        <para><literal>Befehl</literal> ist dabei eine der folgenden
862 823
        Optionen:</para>
......
932 893
      <sect2 id="Administratorpasswort">
933 894
        <title>Administratorpasswort</title>
934 895

  
935
        <para>Das Passwort, das zum Zugriff auf das Aministrationsinterface
936
        benutzt wird, wird ebenfalls in dieser Datei gespeichert. Es kann auch
937
        nur dort und nicht mehr im Administrationsinterface selber geändert
938
        werden. Der Parameter dazu heißt
939
        <literal>$self-&gt;{admin_password}</literal>.</para>
896
        <para>Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird, wird ebenfalls in dieser Datei gespeichert. Es
897
        kann auch nur dort und nicht mehr im Administrationsinterface selber geändert werden. Der Parameter dazu heißt
898
        <varname>admin_password</varname> im Abschnitt <varname>[authentication]</varname>.</para>
940 899
      </sect2>
941 900

  
942 901
      <sect2 id="Authentifizierungsdatenbank">
943 902
        <title>Authentifizierungsdatenbank</title>
944 903

  
945
        <para>Die Verbindung zur Authentifizierungsdatenbank wird mit den
946
        Parametern in <literal>$self-&gt;{DB_config}</literal> konfiguriert.
947
        Hier sind die folgenden Parameter anzugeben:</para>
904
        <para>Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern in <varname>[authentication/database]</varname>
905
        konfiguriert.  Hier sind die folgenden Parameter anzugeben:</para>
948 906

  
949
        <itemizedlist>
907
        <variablelist>
908
         <varlistentry>
909
          <term><literal>host</literal></term>
950 910
          <listitem>
951
            <para>‘<literal>host</literal>’ – Der Rechnername oder die
952
            IP-Adresse des Datenbankservers</para>
911
           <para>Der Rechnername oder die IP-Adresse des Datenbankservers</para>
953 912
          </listitem>
913
         </varlistentry>
954 914

  
915
         <varlistentry>
916
          <term><literal>port</literal></term>
955 917
          <listitem>
956
            <para>‘<literal>port</literal>’ – Die Portnummer des
957
            Datenbankservers, meist 5432</para>
918
            <para>Die Portnummer des Datenbankservers, meist 5432</para>
958 919
          </listitem>
920
         </varlistentry>
959 921

  
922
         <varlistentry>
923
          <term><literal>db</literal></term>
960 924
          <listitem>
961
            <para>‘<literal>db</literal>’ – Der Name der
962
            Authentifizierungsdatenbank</para>
925
           <para>Der Name der Authentifizierungsdatenbank</para>
963 926
          </listitem>
927
         </varlistentry>
964 928

  
929
         <varlistentry>
930
          <term><literal>user</literal></term>
965 931
          <listitem>
966
            <para>‘<literal>user</literal>’ – Der Benutzername, mit dem sich
967
            Lx-Office beim Datenbankserver anmeldet (z.B. “postgres”)</para>
932
            <para>Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. "<literal>postgres</literal>")</para>
968 933
          </listitem>
934
         </varlistentry>
969 935

  
936
         <varlistentry>
937
          <term><literal>password</literal></term>
970 938
          <listitem>
971
            <para>‘<literal>password</literal>’ – Das Passwort für den
972
            Datenbankbenutzer</para>
939
            <para>Das Passwort für den Datenbankbenutzer</para>
973 940
          </listitem>
974
        </itemizedlist>
941
         </varlistentry>
942
        </variablelist>
975 943

  
976 944
        <para>Die Datenbank muss noch nicht existieren. Lx-Office kann sie
977 945
        automatisch anlegen (mehr dazu siehe unten).</para>
......
980 948
      <sect2 id="Passwortüberprüfung">
981 949
        <title>Passwortüberprüfung</title>
982 950

  
983
        <para>Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen
984
        die Authentifizierungsdatenbank und gegen einen externen LDAP- oder
985
        Active-Directory-Server. Welche davon benutzt wird, regelt der
986
        Parameter <literal>$self-&gt;{module}</literal>.</para>
951
        <para>Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die Authentifizierungsdatenbank und gegen einen externen LDAP-
952
        oder Active-Directory-Server. Welche davon benutzt wird, regelt der Parameter <varname>module</varname> im Abschnitt
953
        <varname>[authentication]</varname>.</para>
987 954

  
988
        <para>Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
989
        gespeichert werden, so muss der Parameter
990
        <literal>$self-&gt;{module}</literal> den Wert ‘<literal>DB</literal>’
991
        enthalten. In diesem Fall können sowohl der Administrator als auch die
955
        <para>Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank gespeichert werden, so muss der Parameter
956
        <varname>module</varname> den Wert <literal>DB</literal> enthalten. In diesem Fall können sowohl der Administrator als auch die
992 957
        Benutzer selber ihre Psaswörter in Lx-Office ändern.</para>
993 958

  
994
        <para>Soll hingegen ein externer LDAP- oder Active-Directory-Server
995
        benutzt werden, so muss der Parameter
996
        <literal>$self-&gt;{module}</literal> auf ‘<literal>LDAP</literal>’
997
        gesetzt werden. In diesem Fall müssen zusätzliche Informationen über
998
        den LDAP-Server in <literal>$self-&gt;{LDAP_config}</literal>
999
        angegeben werden:</para>
959
        <para>Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt werden, so muss der Parameter <varname>module</varname>
960
        auf <literal>LDAP</literal> gesetzt werden. In diesem Fall müssen zusätzliche Informationen über den LDAP-Server im Abschnitt
961
        <literal>[authentication/ldap]</literal> angegeben werden:</para>
1000 962

  
1001
        <itemizedlist>
963
        <variablelist>
964
         <varlistentry>
965
          <term><literal>host</literal></term>
1002 966
          <listitem>
1003
            <para>‘<literal>host</literal>’ – Der Rechnername oder die
1004
            IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe
1005
            ist zwingend erforderlich.</para>
967
            <para>Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend
968
            erforderlich.</para>
1006 969
          </listitem>
970
         </varlistentry>
1007 971

  
972
         <varlistentry>
973
          <term><literal>port</literal></term>
1008 974
          <listitem>
1009
            <para>‘<literal>port</literal>’ – Die Portnummer des LDAP-Servers;
1010
            meist 389.</para>
975
            <para>Die Portnummer des LDAP-Servers; meist 389.</para>
1011 976
          </listitem>
977
         </varlistentry>
1012 978

  
979
         <varlistentry>
980
          <term><literal>tls</literal></term>
1013 981
          <listitem>
1014
            <para>‘<literal>tls</literal>’ – Wenn Verbindungsverschlüsselung
1015
            gewünscht ist, so diesen Wert auf ‘<literal>1</literal>’ setzen,
1016
            andernfalls auf ‘<literal>0</literal>’ belassen</para>
982
            <para>Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf ‘<literal>1</literal>’ setzen, andernfalls auf
983
            ‘<literal>0</literal>’ belassen</para>
1017 984
          </listitem>
985
         </varlistentry>
1018 986

  
987
         <varlistentry>
988
          <term><literal>attribute</literal></term>
1019 989
          <listitem>
1020
            <para>‘<literal>attribute</literal>’ – Das LDAP-Attribut, in dem
1021
            der Benutzername steht, den der Benutzer eingegeben hat. Für
1022
            Active-Directory-Server ist dies meist
1023
            ‘<literal>sAMAccountName</literal>’, für andere LDAP-Server
1024
            hingegen ‘<literal>uid</literal>’. Diese Angabe ist zwingend
990
            <para>Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server ist dies
991
            meist ‘<literal>sAMAccountName</literal>’, für andere LDAP-Server hingegen ‘<literal>uid</literal>’. Diese Angabe ist zwingend
1025 992
            erforderlich.</para>
1026 993
          </listitem>
994
         </varlistentry>
1027 995

  
996
         <varlistentry>
997
          <term><literal>base_dn</literal></term>
1028 998
          <listitem>
1029
            <para>‘<literal>base_dn</literal>’ – Der Abschnitt des
1030
            LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend
1031
            erforderlich.</para>
999
            <para>Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.</para>
1032 1000
          </listitem>
1001
         </varlistentry>
1033 1002

  
1003
         <varlistentry>
1004
          <term><literal>filter</literal></term>
1034 1005
          <listitem>
1035
            <para>‘<literal>filter</literal>’ – Ein optionaler LDAP-Filter.
1036
            Enthält dieser Filter das Wort <literal>&lt;%login%&gt;</literal>,
1037
            so wird dieses durch den vom Benutzer eingegebenen Benutzernamen
1038
            ersetzt. Andernfalls wird der LDAP-Baum nach einem Element
1039
            durchsucht, bei dem das oben angegebene Attribut mit dem
1040
            Benutzernamen identisch ist.</para>
1006
            <para>Ein optionaler LDAP-Filter.  Enthält dieser Filter das Wort <literal>&lt;%login%&gt;</literal>, so wird dieses durch den
1007
            vom Benutzer eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben
1008
            angegebene Attribut mit dem Benutzernamen identisch ist.</para>
1041 1009
          </listitem>
1010
         </varlistentry>
1042 1011

  
1012
         <varlistentry>
1013
          <term><literal>bind_dn</literal> und <literal>bind_password</literal></term>
1043 1014
          <listitem>
1044
            <para>‘<literal>bind_dn</literal>’ und
1045
            ‘<literal>bind_password</literal>’ – Wenn der LDAP-Server eine
1046
            Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist
1047
            dies bei Active-Directory-Servern der Fall), so kann diese hier
1048
            angegeben werden. Für Active-Directory-Server kann als
1049
            ‘<literal>bind_dn</literal>’ entweder eine komplette LDAP-DN wie
1050
            z.B. ‘<literal>cn=Martin
1051
            Mustermann,cn=Users,dc=firmendomain</literal>’ auch nur der volle
1052
            Name des Benutzers eingegeben werden; in diesem Beispiel also
1053
            ‘<literal>Martin Mustermann</literal>’.</para>
1015
            <para>Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei Active-Directory-Servern
1016
            der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als ‘<literal>bind_dn</literal>’ entweder eine
1017
            komplette LDAP-DN wie z.B. ‘<literal>cn=Martin Mustermann,cn=Users,dc=firmendomain</literal>’ auch nur der volle Name des
1018
            Benutzers eingegeben werden; in diesem Beispiel also ‘<literal>Martin Mustermann</literal>’.</para>
1054 1019
          </listitem>
1055
        </itemizedlist>
1020
         </varlistentry>
1021
        </variablelist>
1056 1022
      </sect2>
1057 1023

  
1058 1024
      <sect2 id="Name-des-Session-Cookies">
1059 1025
        <title>Name des Session-Cookies</title>
1060 1026

  
1061
        <para>Sollen auf einem Server mehrere Lx-Office-Installationen
1062
        aufgesetzt werden, so müssen die Namen der Session-Cookies für alle
1063
        Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
1064
        Parameter <literal>$self-&gt;{cookie_name}</literal> gesetzt.</para>
1027
        <para>Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt werden, so müssen die Namen der Session-Cookies für alle
1028
        Installationen unterschiedlich sein. Der Name des Cookies wird mit dem Parameter <varname>cookie_name</varname> im Abschnitt
1029
        <varname>[authentication]</varname>gesetzt.</para>
1065 1030

  
1066 1031
        <para>Diese Angabe ist optional, wenn nur eine Installation auf dem
1067 1032
        Server existiert.</para>
......
1406 1371

  
1407 1372
       <variablelist>
1408 1373
        <varlistentry>
1409
         <term>profit_determination</term>
1374
         <term><varname>profit_determination</varname></term>
1410 1375
         <listitem>
1411 1376
          <para>
1412 1377
           Dieser Parameter legt die Berechnungsmethode für die Gewinnermittlung fest. Er enthält entweder <literal>balance</literal> für
......
1416 1381
        </varlistentry>
1417 1382

  
1418 1383
        <varlistentry>
1419
         <term>accounting_method</term>
1384
         <term><varname>accounting_method</varname></term>
1420 1385
         <listitem>
1421 1386
          <para>
1422 1387
           Dieser Parameter steuert die Buchungs- und Berechnungsmethoden für die Versteuerungsart. Er enthält entweder
......
1426 1391
        </varlistentry>
1427 1392

  
1428 1393
        <varlistentry>
1429
         <term>inventory_system</term>
1394
         <term><varname>inventory_system</varname></term>
1430 1395
         <listitem>
1431 1396
          <para>
1432 1397
           Dieser Parameter legt die Warenbuchungsmethode fest. Er enthält entweder <literal>perpetual</literal> für die Bestandsmethode
......
1516 1481
    </sect1>
1517 1482
  </chapter>
1518 1483

  
1519
    <chapter id="features" xreflabel="Features und Funktionen">
1484
  <chapter id="features" xreflabel="Features und Funktionen">
1520 1485
    <title>Features und Funktionen</title>
1521 1486

  
1522 1487
    <sect1 id="features.periodic-invoices" xreflabel="Wiedekehrende Rechnungen">
......
1666 1631
      </para>
1667 1632
     </sect2>
1668 1633
    </sect1>
1669
  </chapter>
1670 1634

  
1671
  <chapter>
1672
    <title>Entwicklerdokumentation</title>
1635
    <sect1 id="dokumentenvorlagen-und-variablen">
1636
      <title>Dokumentenvorlagen und verfügbare Variablen</title>
1673 1637

  
1674
    <sect1 id="devel.globals" xreflabel="Globale Variablen">
1675
      <title>Globale Variablen</title>
1638
      <sect2 id="dokumentenvorlagen-und-variablen.einführung">
1639
        <title>Einführung</title>
1676 1640

  
1677
      <sect2>
1678
        <title>Wie sehen globale Variablen in Perl aus?</title>
1641
        <para>Dies ist eine Auflistung der Standard-Dokumentenvorlagen und
1642
        aller zur Bearbeitung verfügbaren Variablen. Eine Variable wird in
1643
        einer Vorlage durch ihren Inhalt ersetzt, wenn sie in der Form
1644
        <function>&lt;%variablenname%&gt;</function> verwendet wird. Für
1645
        LaTeX- und HTML-Vorlagen kann man die Form dieser Tags auch verändern
1646
        (siehe <xref
1647
        linkend="dokumentenvorlagen-und-variablen.tag-style"/>).</para>
1679 1648

  
1680
        <para>Globale Variablen liegen in einem speziellen namespace namens
1681
        "main", der von überall erreichbar ist. Darüber hinaus sind bareword
1682
        globs global und die meisten speziellen Variablen sind...
1683
        speziell.</para>
1649
        <para>Früher wurde hier nur über LaTeX gesprochen. Inzwischen
1650
        unterstützt Lx-Office aber auch OpenDocument-Vorlagen. Sofern es nicht
1651
        ausdrücklich eingeschränkt wird, gilt das im Folgenden gesagte für
1652
        alle Vorlagenarten.</para>
1684 1653

  
1685
        <para>Daraus ergeben sich folgende Formen:</para>
1654
        <para>Insgesamt sind technisch gesehen eine ganze Menge mehr Variablen
1655
        verfügbar als hier aufgelistet werden. Die meisten davon können
1656
        allerdings innerhalb einer solchen Vorlage nicht sinnvoll verwendet
1657
        werden. Wenn eine Auflistung dieser Variablen gewollt ist, so kann
1658
        diese wie folgt erhalten werden:</para>
1659

  
1660
        <itemizedlist>
1661
          <listitem>
1662
            <para><filename>SL/Form.pm</filename> öffnen und am Anfang die
1663
            Zeile "<command>use Data::Dumper;</command>" einfügen.</para>
1664
          </listitem>
1665

  
1666
          <listitem>
1667
            <para>In <filename>Form.pm</filename> die Funktion
1668
            <function>parse_template</function> suchen und hier die Zeile
1669
            <command>print(STDERR Dumper($self));</command> einfügen.</para>
1670
          </listitem>
1671

  
1672
          <listitem>
1673
            <para>Einmal per Browser die gewünschte Vorlage "benutzen", z.B.
1674
            ein PDF für eine Rechnung erzeugen.</para>
1675
          </listitem>
1676

  
1677
          <listitem>
1678
            <para>Im <filename>error.log</filename> Apache steht die Ausgabe
1679
            der Variablen <varname>$self</varname> in der Form <varname>'key'
1680
            =&gt; 'value',</varname>. Alle <varname>key</varname>s sind
1681
            verfügbar.</para>
1682
          </listitem>
1683
        </itemizedlist>
1684
      </sect2>
1685

  
1686
      <sect2 id="dokumentenvorlagen-und-variablen.variablen-ausgeben">
1687
        <title>Variablen ausgeben</title>
1688

  
1689
        <para>Um eine Variable auszugeben, müssen sie einfach nur zwischen die
1690
        Tags geschrieben werden, also z.B.
1691
        <varname>&lt;%variablenname%&gt;</varname>.</para>
1692

  
1693
        <para>Optional kann man auch mit Leerzeichen getrennte Flags angeben,
1694
        die man aber nur selten brauchen wird. Die Syntax sieht also so aus:
1695
        <varname>&lt;%variablenname FLAG1 FLAG2%&gt;</varname>. Momentan
1696
        werden die folgenden Flags unterstützt:</para>
1697

  
1698
        <itemizedlist>
1699
          <listitem>
1700
            <para><option>NOFORMAT</option> gilt nur für Zahlenwerte und gibt
1701
            den Wert ohne Formatierung, also ohne Tausendertrennzeichen mit
1702
            mit einem Punkt als Dezimaltrennzeichen aus. Nützlich z.B., wenn
1703
            damit in der Vorlage z.B. von LaTeX gerechnet werden soll.</para>
1704
          </listitem>
1705

  
1706
          <listitem>
1707
            <para><option>NOESCAPE</option> unterdrückt das Escapen von
1708
            Sonderzeichen für die Vorlagensprache. Wenn also in einer
1709
            Variablen bereits gültiger LaTeX-Code steht und dieser von LaTeX
1710
            auch ausgewertet und nicht wortwörtlich angezeigt werden soll, so
1711
            ist dieses Flag sinnvoll.</para>
1712
          </listitem>
1713
        </itemizedlist>
1714

  
1715
        <para>Beispiel:</para>
1716

  
1717
        <programlisting>&lt;%quototal NOFORMAT%&gt;</programlisting>
1718
      </sect2>
1719

  
1720
      <sect2 id="dokumentenvorlagen-und-variablen.verwendung-in-druckbefehlen">
1721
        <title>Verwendung in Druckbefehlen</title>
1722

  
1723
        <para>In der Admininstration können Drucker definiert werden. Auch im
1724
        dort eingebbaren Druckbefehl können die hier aufgelisteten Variablen
1725
        und Kontrollstrukturen verwendet werden. Ihr Inhalt wird dabei nach
1726
        den Regeln der gängigen Shells formatiert, sodass Sonderzeichen wie
1727
        <function>`...`</function> nicht zu unerwünschtem Verhalten
1728
        führen.</para>
1729

  
1730
        <para>Dies erlaubt z.B. die Definition eines Faxes als Druckerbefehl,
1731
        für das die Telefonnummer eines Ansprechpartners als Teil der
1732
        Kommandozeile verwendet wird. Für ein fiktives Kommando könnte das
1733
        z.B. wie folgt aussehen:</para>
1734

  
1735
        <programlisting>send_fax --number &lt;%if cp_phone2%&gt;&lt;%cp_phone2%&gt;&lt;%else%&gt;&lt;%cp_phone1%&gt;&lt;%end%&gt;</programlisting>
1736
      </sect2>
1737

  
1738
      <sect2 id="dokumentenvorlagen-und-variablen.tag-style"
1739
             xreflabel="Anfang und Ende der Tags verändern">
1740
        <title>Anfang und Ende der Tags verändern</title>
1741

  
1742
        <para>Der Standardstil für Tags sieht vor, dass ein Tag mit dem
1743
        Kleinerzeichen und einem Prozentzeichen beginnt und mit dem
1744
        Prozentzeichen und dem Größerzeichen endet, beispielsweise
1745
        <function>&lt;%customer%&gt;</function>. Da diese Form aber z.B. in
1746
        LaTeX zu Problemen führen kann, weil das Prozentzeichen dort
1747
        Kommentare einleitet, kann pro HTML- oder LaTeX-Dokumentenvorlage der
1748
        Stil umgestellt werden.</para>
1749

  
1750
        <para>Dazu werden in die Datei Zeilen geschrieben, die mit dem für das
1751
        Format gültigen Kommentarzeichen anfangen, dann
1752
        <function>config:</function> enthalten, die entsprechende Option
1753
        setzen und bei HTML-Dokumentenvorlagen mit dem Kommentarendzeichen
1754
        enden. Beispiel für LaTeX:</para>
1755

  
1756
        <programlisting>% config: tag-style=($ $)</programlisting>
1757

  
1758
        <para>Dies würde Lx-Office dazu veranlassen, Variablen zu ersetzen,
1759
        wenn sie wie folgt aussehen: <function>($customer$)</function>. Das
1760
        äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so aus:</para>
1761

  
1762
        <programlisting>&lt;!-- config: tag-style=($ $) --&gt;</programlisting>
1763
      </sect2>
1764

  
1765
      <sect2 id="dokumentenvorlagen-und-variablen.zuordnung-dateinamen">
1766
        <title>Zuordnung von den Dateinamen zu den Funktionen</title>
1767

  
1768
        <para>Diese folgende kurze Auflistung zeigt, welche Vorlage bei
1769
        welcher Funktion ausgelesen wird. Dabei ist die Dateiendung
1770
        "<filename>.ext</filename>" geeignet zu ersetzen:
1771
        "<filename>.tex</filename>" für LaTeX-Vorlagen und
1772
        "<filename>.odt</filename>" für OpenDocument-Vorlagen.</para>
1686 1773

  
1687 1774
        <variablelist>
1688 1775
          <varlistentry>
1689
            <term>$main::form</term>
1776
            <term><filename>bin_list.ext</filename></term>
1690 1777

  
1691 1778
            <listitem>
1692
              <para>expliziter Namespace "main"</para>
1779
              <para>Lagerliste</para>
1693 1780
            </listitem>
1694 1781
          </varlistentry>
1695 1782

  
1696 1783
          <varlistentry>
1697
            <term>$::form</term>
1784
            <term><filename>check.ext</filename></term>
1698 1785

  
1699 1786
            <listitem>
1700
              <para>impliziter Namespace "main"</para>
1787
              <para>?</para>
1701 1788
            </listitem>
1702 1789
          </varlistentry>
1703 1790

  
1704 1791
          <varlistentry>
1705
            <term>open FILE, "file.txt"</term>
1792
            <term><filename>invoice.ext</filename></term>
1706 1793

  
1707 1794
            <listitem>
1708
              <para><varname>FILE</varname> ist global</para>
1795
              <para>Rechnung</para>
1709 1796
            </listitem>
1710 1797
          </varlistentry>
1711 1798

  
1712 1799
          <varlistentry>
1713
            <term>$_</term>
1800
            <term><filename>packing_list.ext</filename></term>
1714 1801

  
1715 1802
            <listitem>
1716
              <para>speziell</para>
1803
              <para>Packliste</para>
1717 1804
            </listitem>
1718 1805
          </varlistentry>
1719
        </variablelist>
1720

  
1721
        <para>Im Gegensatz zu <productname>PHP</productname> gibt es kein
1722
        Schlüsselwort wie "<function>global</function>", mit dem man
1723
        importieren kann. <function>my</function>, <function>our</function>
1724
        und <function>local</function> machen was anderes.</para>
1725 1806

  
1726
        <variablelist>
1727 1807
          <varlistentry>
1728
            <term>my $form</term>
1808
            <term><filename>pick_list.ext</filename></term>
1729 1809

  
1730 1810
            <listitem>
1731
              <para>lexikalische Variable, gültig bis zum Ende des
1732
              Scopes</para>
1811
              <para>Sammelliste</para>
1733 1812
            </listitem>
1734 1813
          </varlistentry>
1735 1814

  
1736 1815
          <varlistentry>
1737
            <term>our $form</term>
1816
            <term><filename>purchase_delivery_order.ext</filename></term>
1738 1817

  
1739 1818
            <listitem>
1740
              <para><varname>$form</varname> referenziert ab hier
1741
              <varname>$PACKAGE::form</varname>.</para>
1819
              <para>Lieferschein (Einkauf)</para>
1742 1820
            </listitem>
1743 1821
          </varlistentry>
1744 1822

  
1745 1823
          <varlistentry>
1746
            <term>local $form</term>
1824
            <term><filename>purcharse_order.ext</filename></term>
1747 1825

  
1748 1826
            <listitem>
1749
              <para>Alle Änderungen an <varname>$form</varname> werden am Ende
1750
              des scopes zurückgesetzt</para>
1827
              <para>Bestellung an Lieferanten</para>
1751 1828
            </listitem>
1752 1829
          </varlistentry>
1753
        </variablelist>
1754
      </sect2>
1755 1830

  
1756
      <sect2>
1757
        <title>Warum sind globale Variablen ein Problem?</title>
1831
          <varlistentry>
1832
            <term><filename>request_quotation.ext</filename></term>
1758 1833

  
1759
        <para>Das erste Problem ist <productname>FCGI</productname>.</para>
1834
            <listitem>
1835
              <para>Anfrage an Lieferanten</para>
1836
            </listitem>
1837
          </varlistentry>
1760 1838

  
1761
        <para><productname>SQL-Ledger</productname> hat fast alles im globalen
1762
        namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist.
1763
        Unter <productname>FCGI</productname> müssen diese Sachen auch wieder
1764
        aufgeräumt werden, damit sie nicht in den nächsten Request kommen.
1765
        Einige Sachen wiederum sollen nicht gelöscht werden, wie zum Beispiel
1766
        Datenbankverbindungen, weil die ne Ewigkeit zum initialisieren
1767
        brauchen.</para>
1839
          <varlistentry>
1840
            <term><filename>sales_delivery_order.ext</filename></term>
1768 1841

  
1769
        <para>Das zweite Problem ist <function>strict</function>. Unter
1770
        <function>strict</function> werden alle Variablen die nicht explizit
1771
        mit <function>Package</function>, <function>my</function> oder
1772
        <function>our</function> angegeben werden als Tippfehler angemarkert,
1773
        was einen vor so mancher Stunde suchen nach einem Bug erspart. Da
1774
        globale Variablen aber implizit mit Package angegeben werden, werden
1775
        die nicht geprüft, und ein Tippfehler da fällt niemandem auf.</para>
1776
      </sect2>
1842
            <listitem>
1843
              <para>Lieferschein (Verkauf)</para>
1844
            </listitem>
1845
          </varlistentry>
1777 1846

  
1778
      <sect2>
1779
        <title>Kanonische globale Variablen</title>
1847
          <varlistentry>
1848
            <term><filename>sales_order.ext</filename></term>
1780 1849

  
1781
        <para>Um dieses Problem im Griff zu halten gibt es einige wenige
1782
        globale Variablen, die kanonisch sind, und alles andere sollte
1783
        anderweitig umhergereicht werden.</para>
1850
            <listitem>
1851
              <para>Bestellung</para>
1852
            </listitem>
1853
          </varlistentry>
1784 1854

  
1785
        <para>Diese Variablen sind im Moment die folgenden neun:</para>
1855
          <varlistentry>
1856
            <term><filename>sales_quotation.ext</filename></term>
1786 1857

  
1787
        <itemizedlist>
1788
          <listitem>
1789
            <para><varname>$::form</varname></para>
1790
          </listitem>
1858
            <listitem>
1859
              <para>Angebot an Kunden</para>
1860
            </listitem>
1861
          </varlistentry>
1791 1862

  
1792
          <listitem>
1793
            <para><varname>%::myconfig</varname></para>
1794
          </listitem>
1863
          <varlistentry>
1864
            <term><filename>zahlungserinnerung.ext</filename></term>
1795 1865

  
1796
          <listitem>
1797
            <para><varname>$::locale</varname></para>
1798
          </listitem>
1866
            <listitem>
1867
              <para>Mahnung (Dateiname im Programm konfigurierbar)</para>
1868
            </listitem>
1869
          </varlistentry>
1799 1870

  
1800
          <listitem>
1801
            <para><varname>$::lxdebug</varname></para>
1802
          </listitem>
1871
          <varlistentry>
1872
            <term><filename>zahlungserinnerung_invoice.ext</filename></term>
1803 1873

  
1804
          <listitem>
1805
            <para><varname>$::auth</varname></para>
1806
          </listitem>
1874
            <listitem>
1875
              <para>Rechnung über Mahngebühren (Dateiname im Programm
1876
              konfigurierbar)</para>
1877
            </listitem>
1878
          </varlistentry>
1879
        </variablelist>
1880
      </sect2>
1881

  
1882
      <sect2 id="dokumentenvorlagen-und-variablen.dateinamen-erweitert">
1883
        <title>Sprache, Drucker und E-Mail</title>
1884

  
1885
        <para>Angeforderte Sprache und Druckerkürzel in den Dateinamen mit
1886
        eingearbeitet. So wird aus der Vorlage
1887
        <filename>sales_order.ext</filename> bei Sprache
1888
        <function>de</function> und Druckerkürzel <function>lpr2</function>
1889
        der Vorlagenname <filename>sales_order_de_lpr2.ext</filename>.
1890
        Zusätzlich können für E-Mails andere Vorlagen erstellt werden, diese
1891
        bekommen dann noch das Kürzel <filename>_email</filename>, der
1892
        vollständige Vorlagenname wäre dann
1893
        <filename>sales_order_email_de_lpr2.ext</filename>. In allen Fällen
1894
        kann eine Standarddatei <filename>default.ext</filename> hinterlegt
1895
        werden. Diese wird verwendet, wenn keine der anderen Varianten
1896
        gefunden wird.</para>
1807 1897

  
1898
        <para>Die vollständige Suchreihenfolge für einen Verkaufsauftrag mit
1899
        der Sprache "de" und dem Drucker "lpr2", der per E-Mail im Format PDF
1900
        verschickt wird, ist:</para>
1901

  
1902
        <orderedlist>
1808 1903
          <listitem>
1809
            <para><varname>$::lx_office_conf</varname></para>
1904
            <para><filename>sales_order_email_de_lpr2.tex</filename></para>
1810 1905
          </listitem>
1811 1906

  
1812 1907
          <listitem>
1813
            <para><varname>$::instance_conf</varname></para>
1908
            <para><filename>sales_order_de_lpr2.tex</filename></para>
1814 1909
          </listitem>
1815 1910

  
1816 1911
          <listitem>
1817
            <para><varname>$::dispatcher</varname></para>
1912
            <para><filename>sales_order.tex</filename></para>
1818 1913
          </listitem>
1819 1914

  
1820 1915
          <listitem>
1821
            <para><varname>$::request</varname></para>
1916
            <para><filename>default.tex</filename></para>
1822 1917
          </listitem>
1823
        </itemizedlist>
1918
        </orderedlist>
1824 1919

  
1825
        <para>Damit diese nicht als Müllhalde misbrauch werden, im Folgenden
1826
        eine kurze Erläuterung was man von denn erwarten kann.</para>
1920
        <para>Die kurzen Varianten dieser Vorlagentitel müssen dann entweder
1921
        Standardwerte anzeigen, oder die angeforderten Werte selbst auswerten,
1922
        siehe dazu <xref
1923
        linkend="dokumentenvorlagen-und-variablen.allgemeine-variablen.meta"/>.</para>
1924
      </sect2>
1827 1925

  
1828
        <sect3>
1829
          <title>$::form</title>
1926
      <sect2 id="dokumentenvorlagen-und-variablen.allgemeine-variablen">
1927
        <title>Allgemeine Variablen, die in allen Vorlagen vorhanden
1928
        sind</title>
1830 1929

  
1831
          <itemizedlist>
1832
            <listitem>
1833
              <para>Ist ein Objekt der Klasse
1834
              "<classname>Form</classname>"</para>
1835
            </listitem>
1930
        <sect3 id="dokumentenvorlagen-und-variablen.allgemeine-variablen.meta"
1931
               xreflabel="Metainformationen zur angeforderten Vorlage">
1932
          <title>Metainformationen zur angeforderten Vorlage</title>
1836 1933

  
1837
            <listitem>
1838
              <para>Wird nach jedem Request gelöscht</para>
1839
            </listitem>
1934
          <para>Diese Variablen liefern Informationen darüber welche Variante
1935
          einer Vorlage der Benutzer angefragt hat. Sie sind nützlich für
1936
          Vorlagenautoren, die aus einer zentralen Layoutvorlage die einzelnen
1937
          Formulare einbinden möchten.</para>
1840 1938

  
1841
            <listitem>
1842
              <para>Muss auch in Tests und Konsolenscripts vorhanden
1843
              sein.</para>
1844
            </listitem>
1939
          <variablelist>
1940
            <varlistentry>
1941
              <term><varname>template_meta.formname</varname></term>
1845 1942

  
1846
            <listitem>
1847
              <para>Enthält am Anfang eines Requests die Requestparameter vom
1848
              User</para>
1849
            </listitem>
1943
              <listitem>
1944
                <para>Basisname der Vorlage. Identisch mit der <link
1945
                linkend="dokumentenvorlagen-und-variablen.zuordnung-dateinamen">Zurordnung
1946
                zu den Dateinamen</link> ohne die Erweiterung. Ein
1947
                Verkaufsauftrag enthält hier
1948
                <constant>sales_order</constant>.</para>
1949
              </listitem>
1950
            </varlistentry>
1850 1951

  
1851
            <listitem>
1852
              <para>Kann zwar intern über Requestgrenzen ein Datenbankhandle
1853
              cachen, das wird aber momentan absichtlich zerstört</para>
1854
            </listitem>
1855
          </itemizedlist>
1952
            <varlistentry>
1953
              <term><varname>template_meta.language.description</varname></term>
1856 1954

  
1857
          <para><varname>$::form</varname> wurde unter <productname>SQL
1858
          Ledger</productname> als Gottobjekt für alles misbraucht. Sämtliche
1859
          alten Funktionen unter SL/ mutieren <varname>$::form</varname>, das
1860
          heißt, alles was einem lieb ist, sollte man vor einem Aufruf von zum
1861
          Beispiel <function>IS-&gt;retrieve_customer()</function> in
1862
          Sicherheit bringen.</para>
1955
              <listitem>
1956
                <para>Beschreibung der verwendeten Sprache</para>
1957
              </listitem>
1958
            </varlistentry>
1863 1959

  
1864
          <para>Das Objekt der Klasse Form hat leider im Moment noch viele
1865
          zentrale Funktionen Gdie vom internen Zustand abhängen, deshalb
1866
          bitte nie einfach zerstören oder überschreiben. Es geht ziemlich
1867
          sicher etwas kaputt.</para>
1960
            <varlistentry>
1961
              <term><varname>template_meta.language.template_code</varname></term>
1868 1962

  
1869
          <para><varname>$::form</varname> ist gleichzeitig der Standard Scope
1870
          in den <productname>Template::Toolkit</productname> Templates
1871
          außerhalb der Controller: der Ausdruck <function>[% var
1872
          %]</function> greift auf <varname>$::form-&gt;{var}</varname> zu.
1873
          Unter Controllern ist der Standard Scope anders, da lautet der
1874
          Zugriff <function>[% FORM.var %]</function>. In Druckvorlagen sind
1875
          normale Variablen ebenfall im <varname>$::form</varname> Scope, d.h.
1876
          <function>&lt;%var%&gt;</function> zeigt auf
1877
          <varname>$::form-&gt;{var}</varname>. Innerhalb von Schleifen wird
1878
          <varname>$::form-&gt;{TEMPLATE_ARRAYS}{var}[$index]</varname>
1879
          bevorzugt, wenn vorhanden.</para>
1880
        </sect3>
1963
              <listitem>
1964
                <para>Vorlagenürzel der verwendeten Sprache, identisch mit dem
1965
                Kürzel das im Dateinamen verwendetet wird.</para>
1966
              </listitem>
1967
            </varlistentry>
1881 1968

  
1882
        <sect3>
1883
          <title>%::myconfig</title>
1969
            <varlistentry>
1970
              <term><varname>template_meta.language.output_numberformat</varname></term>
1884 1971

  
1885
          <itemizedlist>
1886
            <listitem>
1887
              <para>Das einzige Hash unter den globalen Variablen</para>
1888
            </listitem>
1972
              <listitem>
1973
                <para>Zahlenformat der verwendeten Sprache in der Form
1974
                "<constant>1.000,00</constant>". Experimentell! Nur
1975
                interessant für Vorlagen die mit unformatierten Werten
1976
                arbeiten.</para>
1977
              </listitem>
1978
            </varlistentry>
1889 1979

  
1890
            <listitem>
1891
              <para>Wird spätestens benötigt wenn auf die Datenbank
1892
              zugegriffen wird</para>
1893
            </listitem>
1980
            <varlistentry>
1981
              <term><varname>template_meta.language.output_dateformat</varname></term>
1894 1982

  
1895
            <listitem>
1896
              <para>Wird bei jedem Request neu erstellt.</para>
1897
            </listitem>
1983
              <listitem>
1984
                <para>Datumsformat der verwendeten Sprache in der Form
1985
                "<constant>dd.mm.yyyy</constant>". Experimentell! Nur
1986
                interessant für Vorlagen die mit unformatierten Werten
1987
                arbeiten.</para>
1988
              </listitem>
1989
            </varlistentry>
1898 1990

  
1899
            <listitem>
1900
              <para>Enthält die Userdaten des aktuellen Logins</para>
1901
            </listitem>
1991
            <varlistentry>
1992
              <term><varname>template_meta.format</varname></term>
1902 1993

  
1903
            <listitem>
1904
              <para>Sollte nicht ohne Filterung irgendwo gedumpt werden oder
1905
              extern serialisiert werden, weil da auch der Datenbankzugriff
1906
              für diesenuser drinsteht.</para>
1907
            </listitem>
1994
              <listitem>
1995
                <para>Das angeforderte Format. Kann im Moment die Werte
1996
                <constant>pdf</constant>, <constant>postscript</constant>,
1997
                <constant>html</constant>, <constant>opendocument</constant>,
1998
                <constant>opendocument_pdf</constant> und
1999
                <constant>excel</constant> enthalten.</para>
2000
              </listitem>
2001
            </varlistentry>
1908 2002

  
1909
            <listitem>
1910
              <para>Enthält unter anderem Listenbegrenzung vclimit,
1911
              Datumsformat dateformat und Nummernformat numberformat</para>
1912
            </listitem>
2003
            <varlistentry>
2004
              <term><varname>template_meta.extension</varname></term>
1913 2005

  
1914
            <listitem>
1915
              <para>Enthält Datenbankzugriffinformationen</para>
1916
            </listitem>
1917
          </itemizedlist>
2006
              <listitem>
2007
                <para>Dateierweiterung, wie im Dateinamen. Wird aus
2008
                <constant>format</constant> entschieden.</para>
2009
              </listitem>
2010
            </varlistentry>
1918 2011

  
1919
          <para><varname>%::myconfig</varname> ist im Moment der Ersatz für
1920
          ein Userobjekt. Die meisten Funktionen, die etwas anhand des
1921
          aktuellen Users entscheiden müssen, befragen
1922
          <varname>%::myconfig</varname>.</para>
1923
        </sect3>
2012
            <varlistentry>
2013
              <term><varname>template_meta.media</varname></term>
1924 2014

  
1925
        <sect3>
1926
          <title>$::locale</title>
2015
              <listitem>
2016
                <para>Ausgabemedium. Kann zur Zeit die Werte
2017
                <constant>screen</constant> für Bildschirm,
2018
                <constant>email</constant> für E-Mmail (triggert das
2019
                <constant>_email</constant> Kürzel im Dateinamen),
2020
                <constant>printer</constant> für Drucker, und
2021
                <constant>queue</constant> für Warteschlange enthalten.</para>
2022
              </listitem>
2023
            </varlistentry>
1927 2024

  
1928
          <itemizedlist>
1929
            <listitem>
1930
              <para>Objekt der Klasse "Locale"</para>
1931
            </listitem>
2025
            <varlistentry>
2026
              <term><varname>template_meta.printer.description</varname></term>
1932 2027

  
1933
            <listitem>
1934
              <para>Wird pro Request erstellt</para>
1935
            </listitem>
2028
              <listitem>
2029
                <para>Beschreibung des ausgewählten Druckers</para>
2030
              </listitem>
2031
            </varlistentry>
1936 2032

  
1937
            <listitem>
1938
              <para>Muss auch für Tests und Scripte immer verfügbar
1939
              sein.</para>
1940
            </listitem>
2033
            <varlistentry>
2034
              <term><varname>template_meta.printer.template_code</varname></term>
1941 2035

  
1942
            <listitem>
1943
              <para>Cached intern über Requestgrenzen hinweg benutzte
1944
              Locales</para>
1945
            </listitem>
1946
          </itemizedlist>
1947

  
1948
          <para>Lokalisierung für den aktuellen User. Alle Übersetzungen,
1949
          Zahlen- und Datumsformatierungen laufen über dieses Objekt.</para>
2036
              <listitem>
2037
                <para>Vorlagenürzel des ausgewählten Druckers, identisch mit
2038
                dem Kürzel das im Dateinamen verwendetet wird.</para>
2039
              </listitem>
2040
            </varlistentry>
2041
          </variablelist>
1950 2042
        </sect3>
1951 2043

  
1952
        <sect3>
1953
          <title>$::lxdebug</title>
2044
        <sect3 id="dokumentenvorlagen-und-variablen.allgemeine-variablen.kunden-lieferanten">
2045
          <title>Stammdaten von Kunden und Lieferanten</title>
1954 2046

  
1955
          <itemizedlist>
1956
            <listitem>
1957
              <para>Objekt der Klasse "LXDebug"</para>
1958
            </listitem>
2047
          <variablelist>
2048
            <varlistentry>
2049
              <term><varname>account_number</varname></term>
1959 2050

  
1960
            <listitem>
1961
              <para>Wird global gecached</para>
1962
            </listitem>
2051
              <listitem>
2052
                <para>Kontonummer</para>
2053
              </listitem>
2054
            </varlistentry>
1963 2055

  
1964
            <listitem>
1965
              <para>Muss immer verfügbar sein, in nahezu allen
1966
              Funktionen</para>
1967
            </listitem>
1968
          </itemizedlist>
2056
            <varlistentry>
2057
              <term><varname>bank</varname></term>
1969 2058

  
1970
          <para><varname>$::lxdebug</varname> stellt Debuggingfunktionen
1971
          bereit, wie "<function>enter_sub</function>" und
1972
          "<function>leave_sub</function>", mit denen in den alten Modulen ein
1973
          brauchbares Tracing gebaut ist, "<function>log_time</function>", mit
1974
          der man die Wallclockzeit seit Requeststart loggen kann, sowie
1975
          "<function>message</function>" und "<function>dump</function>" mit
1976
          denen man flott Informationen ins Log packen kann.</para>
1977
        </sect3>
2059
              <listitem>
2060
                <para>Name der Bank</para>
2061
              </listitem>
2062
            </varlistentry>
1978 2063

  
1979
        <sect3>
1980
          <title>$::auth</title>
2064
            <varlistentry>
2065
              <term><varname>bank_code</varname></term>
1981 2066

  
1982
          <itemizedlist>
1983
            <listitem>
1984
              <para>Objekt der Klasse "SL::Auth"</para>
1985
            </listitem>
2067
              <listitem>
2068
                <para>Bankleitzahl</para>
2069
              </listitem>
2070
            </varlistentry>
1986 2071

  
1987
            <listitem>
1988
              <para>Wird global gecached</para>
1989
            </listitem>
2072
            <varlistentry>
2073
              <term><varname>bic</varname></term>
1990 2074

  
1991
            <listitem>
1992
              <para>Hat eine permanente DB Verbindung zur Authdatenbank</para>
1993
            </listitem>
2075
              <listitem>
2076
                <para>Bank-Identifikations-Code (Bank Identifier Code,
2077
                BIC)</para>
2078
              </listitem>
2079
            </varlistentry>
1994 2080

  
1995
            <listitem>
1996
              <para>Wird nach jedem Request resettet.</para>
1997
            </listitem>
1998
          </itemizedlist>
2081
            <varlistentry>
2082
              <term><varname>business</varname></term>
1999 2083

  
2000
          <para><varname>$::auth</varname> stellt Funktionen bereit um die
2001
          Rechte des aktuellen Users abzufragen. Obwohl diese Informationen
2002
          vom aktuellen User abhängen wird das Objekt aus
2003
          Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem
2004
          Request kurz resettet.</para>
2005
        </sect3>
2084
              <listitem>
2085
                <para>Kunden-/Lieferantentyp</para>
2086
              </listitem>
2087
            </varlistentry>
2006 2088

  
2007
        <sect3>
2008
          <title>$::lx_office_conf</title>
2089
            <varlistentry>
2090
              <term><varname>city</varname></term>
2009 2091

  
2010
          <itemizedlist>
2011
            <listitem>
2012
              <para>Objekt der Klasse
2013
              "<classname>SL::LxOfficeConf</classname>"</para>
2014
            </listitem>
2092
              <listitem>
2093
                <para>Stadt</para>
2094
              </listitem>
2095
            </varlistentry>
2015 2096

  
2016
            <listitem>
2017
              <para>Global gecached</para>
2018
            </listitem>
2097
            <varlistentry>
2098
              <term><varname>contact</varname></term>
2019 2099

  
2020
            <listitem>
2021
              <para>Repräsentation der
2022
              <filename>config/lx_office.conf[.default]</filename>-Dateien</para>
2023
            </listitem>
2024
          </itemizedlist>
2100
              <listitem>
2101
                <para>Kontakt</para>
2102
              </listitem>
2103
            </varlistentry>
2025 2104

  
2026
          <para>Globale Konfiguration. Configdateien werden zum Start gelesen,
2027
          und nicht mehr angefasst. Es ist derzeit nicht geplant, dass das
2028
          Programm die Konfiguration ändern kann oder sollte.</para>
2105
            <varlistentry>
2106
              <term><varname>country</varname></term>
2029 2107

  
2030
          <para>Für die folgende Konfigurationsdatei:</para>
2108
              <listitem>
2109
                <para>Land</para>
2110
              </listitem>
2111
            </varlistentry>
2031 2112

  
2032
          <programlisting>[debug]
2033
       file = /tmp/lxoffice_debug_log.txt</programlisting>
2113
            <varlistentry>
2114
              <term><varname>cp_email</varname></term>
2034 2115

  
2035
          <para>ist der Key <varname>file</varname> im Programm als
2036
          <varname>$::lx_office_conf-&gt;{debug}{file}</varname>
2037
          erreichbar.</para>
2116
              <listitem>
2117
                <para>Email des Ansprechpartners</para>
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff