Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
de:2.0:admidio_customization [2020/10/20 20:11] fassede:2.0:admidio_customization [2024/01/12 21:31] (current) – [Texte aus Sprachdateien verwenden] fasse
Line 1: Line 1:
-====== Layout adjustments ====== +====== Layout-Anpassungen ====== 
-===== General ===== +===== Wie erstelle ich ein eigenes Theme? ===== 
-Admidio is delivered with a contemporary layoutOf course you can also use it for your websiteBut in many cases you might want to adapt the layout of Admidio to the layout of your website. This can range from simple color changes up to an own header and footer of the pageSome of you might even want to change the layout and adjust the content in forms or lists.+Admidio wird mit einem zeitgemäßen Layout ausgeliefertDieses könnt ihr natürlich auch für eure Webseite nutzenIn vielen Fällen besteht allerdings der Wunsch das Layout von Admidio an das Layout eurer Seite anzupassen. Das kann von einfachen Farbänderungen bis hin zu einem eigenen Kopf und Fuß der Seite gehen. Manch einer will vielleicht sogar den Aufbau ändern und ggfInhalte in Formularen oder Listen anpassen.
  
-This page describes the options you have to customize the given layoutThe adjustments described here refer to Admidio 4.0 or a more recent versionMany things are possiblebut unfortunately not everything. Admidio has historically a close connection between layout and logicWe try to separate these more and moreThe relevant layout files are stored in the folder **adm_themes**. There is a subfolder for each themeIf you only want to change small thingsyou can do this in the existing **Simple** themeFor bigger changes we recommend to create a copy of **Simple** with a new name, e.g. **myNewTheme**. You can create as many themes as you likeThe desired theme can be selected later in the settings under //Settings General > Admidio-Theme//.\\  +Diese Seite beschreibt die Möglichkeiten, die ihr habt das vorgegebene Layout anzupassenDie hier beschriebenen Anpassungen beziehen sich auf Admidio 4.0 oder eine aktuellere VersionVieles ist möglichaber leider nicht alles. Admidio hat historisch bedingt eine enge Verzahnung von Layout und LogikDiese versuchen wir immer weiter zu trennenDie relevanten Layoutdateien werden im Ordner **adm_themes** hinterlegtDort gibt es für jedes Theme einen UnterordnerWenn ihr nur Kleinigkeiten ändern wolltdann könnt ihr das im bestehenden Theme **Simple** machenBei größeren Änderungen empfehlen wir euch eine Kopie von **Simple** unter einem neuen Namen z.B. **myNewTheme** zu erstellenIhr könnt beliebig viele Themes erstellenDas gewünschte Theme kann später in den Einstellungen unter //Einstellungen Allgemein > Admidio-Theme// ausgewählt werden.\\  
-{{:en:themes:theme_change.png?400|Select Theme}}}+{{:de:2.0:documentation:layout:theme_change.png?400|Theme auswählen}}
  
-===== Adjustments via CSS ===== +===== Wie passe ich das Layout mit CSS an? ===== 
-Many layout adjustments can already be implemented via CSS. For this you can use the **admidio.css** file in the theme folder //adm_themes/simple/css//There you can change existing adjustments to classes or id's or add new onesThis file will be included in every page as the last CSS file and overwrites all previous set values.\\ +Viele Layoutanpassungen können bereits über CSS umgesetzt werdenDazu steht euch die folgende Datei im Theme-Ordner zur Verfügung ''adm_themes/simple/css/admidio.css''. Dort könnt ihr bestehende Anpassungen zu Klassen oder Ids verändern oder auch neue hinzufügenDiese Datei wird in jede Seite als letzte CSS-Datei eingebunden und überschreibt somit alle vorherigen gesetzten Werte.\\ 
  
-Mark your changes in the CSS file with a unique identifierThis will help you laterif you want to save your changes in admidio.css after an update.+Markiert eure Änderungen in der CSS Datei am Besten mit einem eindeutigen KürzelDies hilft euch späterfalls ihr nach einem Update eure Anpassungen in der admidio.css wieder hinterlegen wollt.
 <code css>.admidio-icon-link { <code css>.admidio-icon-link {
     margin-left: 0px;     margin-left: 0px;
Line 25: Line 25:
 /* my code end */</code>\\  /* my code end */</code>\\ 
  
-The Admidio Layout is based on [[https://getbootstrap.com/|Bootstrap]], which defines the basic layout elementsFor Bootstrap there are already many ready-made alternative layoutsYou can exchange the integrated Bootstrap CSS and Javascript filesJust open the file //adm_themes/simple/templates/js_css_files.tpl// and replace the url of the following lines on your new bootstrap files.+Das Admidio Layout basiert auf [[https://getbootstrap.com/|Bootstrap]], welches die grundlegenden Layoutelemente vorgibtFür Bootstrap gibt es bereits viele vorgefertigte alternative LayoutsIhr könnt die integrierten Bootstrap CSS und Javascript-Dateien austauschenÖffnet dazu einfach die Datei ''adm_themes/simple/templates/js_css_files.tpl'' und ersetzt dort die Url der folgenden Zeilen auf eure neuen Bootstrap Dateien.
 <code html>  <script type="text/javascript" src="{$urlAdmidio}/adm_program/libs/client/bootstrap/js/bootstrap.bundle.min.js"> <code html>  <script type="text/javascript" src="{$urlAdmidio}/adm_program/libs/client/bootstrap/js/bootstrap.bundle.min.js">
   <link rel="stylesheet" type="text/css" href="{$urlAdmidio}/adm_program/libs/client/bootstrap/css/bootstrap.min.css" />   <link rel="stylesheet" type="text/css" href="{$urlAdmidio}/adm_program/libs/client/bootstrap/css/bootstrap.min.css" />
 </script> </script>
 </code> </code>
-Make sure that the files are included 2x slightly modifiedOnce in $debug mode in full length and once as minified files for productive useYou should exchange the files at both places.+Achtet darauf, dass die Dateien 2x leicht abgewandelt eingebunden werdenEinmal im $debug Modus in voller Länge und einmal als minified-Dateien für den produktiven BetriebIhr solltet die Dateien an beiden Stellen austauschen.
  
-===== Customization with the Template Engine Smarty ===== +===== Wie bearbeite ich das Layout mit der Template Engine===== 
-Admidio uses the [[https://www.smarty.net/|Smarty Template Engine]] to display the Html pageWith it we create the general layout elements like the page header with the menu and the page footerThe actual contentthe dialogs or lists are currently still generated from the individual scripts and cannot be changed using special template filesBut take a look at what is already possible via the main page.+Admidio nutzt zur Darstellung der Html-Seite die [[https://www.smarty.net/|Smarty Template Engine]]. Mit ihr erzeugen wir die allgemeinen Layout-Elemente wie z.B. den Seitenkopf mit dem Menü und den Seitenfuß. Der eigentliche Inhaltdie Dialoge oder Listen werden momentan noch aus den einzelnen Scripten erzeugt und können nicht über spezielle Templatedateien verändert werdenSchaut euch aber mal an, was bereits alles über die Hauptseite bereits möglich ist.
  
-You will find the template files in the folder //adm_themes/simple/templates// and can customize them thereEnclosed you will find a short overview of the content of each file+Ihr findet die Template-Dateien im Ordner ''adm_themes/simple/templates'' und könnt diese dort anpassenAnbei findet ihr einen kurzen Überblick, was welche Datei inhaltlich abbildet
-Template file      Description         ^+Templatedatei      Beschreibung         ^
 | cookie_note.tpl    | Stellt das Script für das Cookie-Popup bereit und sollte nur angepasst werden, wenn ihr das Verhalten oder Aussehen von diesem kleinen Popup ändern wollt. Schaut euch dazu den dazugehörigen [[https://www.osano.com/cookieconsent/download/|Script-Konfigurator]] an.         | | cookie_note.tpl    | Stellt das Script für das Cookie-Popup bereit und sollte nur angepasst werden, wenn ihr das Verhalten oder Aussehen von diesem kleinen Popup ändern wollt. Schaut euch dazu den dazugehörigen [[https://www.osano.com/cookieconsent/download/|Script-Konfigurator]] an.         |
 | index_reduced.tpl    | Stark Layout reduzierte Seite, welche nur den Seitentitel, einen Zurück-Button und den eigentlichen Inhalt anzeigt. Seitenkopf, das Navigationsmenü und der Seitenfuß werden nicht angezeigt. Diese Seite wird z.B. bei der Druckvorschau genutzt. | | index_reduced.tpl    | Stark Layout reduzierte Seite, welche nur den Seitentitel, einen Zurück-Button und den eigentlichen Inhalt anzeigt. Seitenkopf, das Navigationsmenü und der Seitenfuß werden nicht angezeigt. Diese Seite wird z.B. bei der Druckvorschau genutzt. |
Line 45: Line 45:
 | overview.tpl    | Seiteninhalt der Startseite von Admidio mit dem Überblick über den Inhalt aller Module. Auf dieser Seite werden verschiedene Plugins eingebunden. Falls bestimmte Module oder Plugins nicht genutzt werden sollen, können diese hier entfernt werden. Es können auch weitere Plugins hinzugefügt werden. | | overview.tpl    | Seiteninhalt der Startseite von Admidio mit dem Überblick über den Inhalt aller Module. Auf dieser Seite werden verschiedene Plugins eingebunden. Falls bestimmte Module oder Plugins nicht genutzt werden sollen, können diese hier entfernt werden. Es können auch weitere Plugins hinzugefügt werden. |
  
-The syntax of Smarty is actually very easy to learn and is usually already apparent when looking at our delivered template filesAdditionally, there is [[https://www.smarty.net/docs/en/|a documentation]] which describes the many possibilities of Smarty. Some important points for us are described in the following.+Die Syntax von Smarty ist eigentlich sehr einfach zu lernen und erschließt sich meistens bereits schon beim Blick auf unsere ausgelieferten Template-DateienZusätzlich gibt es dazu aber auch [[https://www.smarty.net/docs/en/|eine Dokumentation]], welche die vielen Möglichkeiten von Smarty beschreibtEinige für uns wichtige Punkte beschreiben wir im Folgenden.
  
 ==== Variablen in Template-Dateien ==== ==== Variablen in Template-Dateien ====
-With the help of Smarty variables can be included in template fileswhich are filled by Admidio at runtime and therefore have a dynamic contentVariables are enclosed with a curly bracket and always start with a signWith this syntax they can be integrated directly into Html code.+Mit Hilfe von Smarty können Variablen in Template-Dateien eingebunden werdenwelche zur Laufzeit von Admidio gefüllt werden und somit einen dynamischen Inhalt habenVariablen werden mit einer geschweiften Klammer eingeschlossen und beginnen immer mit einem ZeichenMit dieser Syntax können sie direkt in Html-Code eingebaut werden.
  
-For exampleif you want to store a heading with the name of your organization, you can do so as follows: <code html><h1>{$organizationName}</h1></code>+Wollt Ihr zum Beispiel eine Überschrift mit dem Namen eurer Organisation hinterlegen, so ist dies wie folgt möglich: <code html><h1>{$organizationName}</h1></code>
  
-The following variables are available on every Admidio page and can be used by you in the template files if you want to redesign them+Die folgenden Variablen stehen auf jeder Admidio-Seite zur Verfügung und können von euch in den Template-Dateien genutzt werden, falls ihr diese umgestalten wollt
-^ Variable      ^ Example content         ^ Description         ^ +^ Variable      ^ Beispielinhalt         ^ Beschreibung         ^ 
-| {$id} | admidio-announcements    Id der Html-Seite, welche für jede Seite separat erstellt wird und im <bodyals id hinterlegt wird. | +| {$additionalHeaderData} | <meta charset="utf-8">    Weitere Html-Tags für den Seitenkopf. | 
-| {$title} | Demo-Organisation - Meine Beispielseite    Titel der Html-Seite für das Tag <title>. |+| {$content} | <html>...    | Der eigentliche Inhalt der aufgerufenen Seite z.B. ein Dialog oder eine Liste. | 
 +| {$currentUser} | Müller    | Objekt des angemeldeten Benutzers. Darüber können sämtliche Profildaten abgefragt werden. ([[de:2.0:admidio_customization#daten_des_der_angemeldeten_benutzerin_verwenden|Ausführliche Dokumentation]]) //(ab Version 4.3)//| 
 +| {$debug} | false    Normalerweise //false// außer der Debug-Modus wurde in der config.php angeschaltet. | 
 +| {$hasPreviousUrl} | true    | Gibt an, ob es eine URL gibt, von der diese Seite aufgerufen wurde. Im Standardtheme wird dann ein Zurück-Button angezeigt. | 
 | {$headline} | Meine Beispielseite    | Überschrift für die Seite. | | {$headline} | Meine Beispielseite    | Überschrift für die Seite. |
-| {$urlPreviousPage} | https://www.admidio.org/demo/adm_program/overview.php    URL der zuletzt aufgerufen Admidio-Seite. |+| {$id} | admidio-announcements    | Id der Html-Seite, welche für jede Seite separat erstellt wird und im <body> als id hinterlegt wird. | 
 +| {$javascriptContent} | if(javascript = 1) {}    | Weiterer Javascript-Code der jeweiligen Seite. | 
 +| {$javascriptContentExecuteAtPageLoad} | if(javascript = 1) {}     | Weiterer Javascript-Code der jeweiligen Seite, der beim Seitenaufruf ausgeführt werden soll. | 
 +| {$languageIsoCode} | de    | Iso-Code der aktuell ausgewählten Sprache z.B. 'de' oder 'en'//(ab Version 4.1.6)// 
 +| {$l10n} | Alle Sprachtexte    Objekt um auf alle Sprachtexte von Admidio zu zugreifen. ([[de:2.0:admidio_customization#texte_aus_sprachdateien_verwenden|Ausführliche Dokumentation]]) | 
 +| {$menuSidebar} | <html>...    | Html-Code für das Navigationsmenü. |
 | {$organizationName} | Demo-Organisation   | Name eurer Organisation aus den Einstellungen. | | {$organizationName} | Demo-Organisation   | Name eurer Organisation aus den Einstellungen. |
 +| {$printView} | false    | Bei einer Druckvorschau //true//, ansonsten //false//. |
 +| {$registrationEnabled} | true    | Bei aktivierter Registrierung //true//, ansonsten //false//. |
 +| {$templateFile} | message.tpl    | Eine andere Template-Datei, welche in der aktuellen Template-Datei eingebunden werden soll. |
 +| {$title} | Demo-Organisation - Meine Beispielseite    | Titel der Html-Seite für das Tag <title>. |
 | {$urlAdmidio} | https://www.admidio.org/demo    | URL der Admidio-Installation. | | {$urlAdmidio} | https://www.admidio.org/demo    | URL der Admidio-Installation. |
 +| {$urlImprint} | https://www.admidio.org/imprint.php    | URL zum Impressum, welche in den Einstellungen hinterlegt wurde. |
 +| {$urlDataProtection} | https://www.admidio.org/data_protection.php    | URL zum Datenschutz, welche in den Einstellungen hinterlegt wurde |
 | {$urlTheme} | https://www.admidio.org/demo/adm_themes/simple    | URL zum verwendeten Theme der Admidio-Installation. | | {$urlTheme} | https://www.admidio.org/demo/adm_themes/simple    | URL zum verwendeten Theme der Admidio-Installation. |
-| {$userId} | 4711    | Id des angemeldeten Benutzers. |+| {$userId} | 4711    | Id des angemeldeten Benutzers. **(veraltet, steht ab Version 4.2 nicht mehr zur Verfügung)** | 
 +| {$userUuid} | 97f8346c-ca53-40de-857a-459d26d9df40    | Uuid des angemeldeten Benutzers. **(veraltet, ab Version 4.3 bitte {$currentUser->getValue('usr_uuid')} verwenden)** |
 | {$validLogin} | true    | Bei gültiger Anmeldung in Admidio //true//, ansonsten //false//. | | {$validLogin} | true    | Bei gültiger Anmeldung in Admidio //true//, ansonsten //false//. |
-| {$debug} | false    | Normalerweise //false// außer der Debug-Modus wurde in der config.php angeschaltet. | +hinterlegt wurde. |
-| {$registrationEnabled} | true    | Bei aktivierter Registrierung //true//, ansonsten //false//. | +
-| {$printView} | false    | Bei einer Druckvorschau //true//, ansonsten //false//. | +
-| {$urlImprint} | https://www.admidio.org/imprint.php    | URL zum Impressum, welche in den Einstellungen hinterlegt wurde. | +
-| {$urlDataProtection} | https://www.admidio.org/data_protection.php    | URL zum Datenschutz, welche in den Einstellungen hinterlegt wurde. | +
-| {$content} | <html>...    | Der eigentliche Inhalt der aufgerufenen Seite z.B. ein Dialog oder eine Liste. | +
-| {$templateFile} | message.tpl    | Eine andere Template-Datei, welche in der aktuellen Template-Datei eingebunden werden soll. | +
-| {$menuSidebar} | <html>...    | Html-Code für das Navigationsmenü. | +
-| {$additionalHeaderData} | <meta charset="utf-8">    | Weitere Html-Tags für den Seitenkopf. | +
-| {$javascriptContent} | if(javascript = 1) {}    | Weiterer Javascript-Code der jeweiligen Seite. | +
-| {$javascriptContentExecuteAtPageLoad} | if(javascript = 1) {}     | Weiterer Javascript-Code der jeweiligen Seite, der beim Seitenaufruf ausgeführt werden soll. |+
  
-==== Use texts from language files ==== +==== Daten des/der angemeldeten Benutzer:in verwenden ==== 
-With Smarty you also have access to the texts from the language files (adm_program/languages) in the template files and can integrate them at any placeFor this purpose you need the individual abbreviation of the text e.g. SYS_FILE_EXTENSION_INVALID and you can integrate it into the html code using the following syntax:+Mit Smarty habt ihr in den Template-Dateien Zugriff auf alle Profildaten und die UUID des/ der angemeldeten Benutzer:in. Es steht euch dazu das Objekt ''currentUser'' zur Verfügung, welches ihr an beliebigen Stellen integrieren könnt. Für die Profildaten benötigt ihr den internen Namen des Profilfelds, welches ihr in den Einstellungen des jeweiligen Profilfelds in Admidio findet. Wollt ihr nun z.B. Vor- und Nachname des/der Benutzer:in ausgeben, könnt ihr dies wiefolgt machen: <code html>{$currentUser->getValue('FIRST_NAME')} {$currentUser->getValue('LAST_NAME')}</code> Die UUID könnt ihr mit folgendem Code ausgeben:<code html>{$currentUser->getValue('usr_uuid')}</code> Den Anmeldenamen könnt ihr mit diesem Code ausgeben:<code html>{$currentUser->getValue('usr_login_name')}</code>  
 + 
 +==== Texte aus Sprachdateien verwenden ==== 
 +Mit Smarty habt ihr in den Template-Dateien auch Zugriff auf die Texte aus den Sprachdateien (adm_program/languages) und könnt diese an beliebigen Stellen integrierenDazu steht euch das Objekt ''l10n'' zur VerfügungIhr benötigt lediglich das individuellen Kürzel des Textes z.B. SYS_FILE_EXTENSION_INVALID und könnt dieses dann über die folgende Syntax im Html-Code einbinden:
 <code html><b>{$l10n->get('SYS_FILE_EXTENSION_INVALID')}</b></code> <code html><b>{$l10n->get('SYS_FILE_EXTENSION_INVALID')}</b></code>
-The curly brackets with the l10n->get, as well as the normal brackets with the quotation marks must always be deposited. In between there is the text abbreviationwhich is replaced by the text in the selected language when the page is displayed+Die geschweiften Klammern mit dem l10n->get, sowie den normalen Klammern mit den Hochkommata müssen immer hinterlegt werden. Dazwischen kommt dann das Text-Kürzel, welches bei der Anzeige der Seite durch den Text in der eingestellten Sprache ersetzt wird.\\  
 + 
 +Das Beispiel oben sieht dann so aus:\\  
 +**Dateien dieses Dateityps sind auf dem Server nicht erlaubt.** 
 + 
 +===== Wie verändere ich Icons ? ===== 
 +Admidio nutzt zur Darstellung von Icons die Schriftbibliothek [[https://fontawesome.com/|Font Awesome]], genauer gesagt das [[https://fontawesome.com/icons?d=gallery&s=solid&m=free|kostenlose Solid Theme]] dieser Bibliothek. Die Icons könnt ihr ziemlich einfach integrieren. Sucht auf der oben genannten Webseite nach eurem gewünschten Icon, merkt euch den Namen und baut folgenden Codeschnipsel ein: <code html><i class="fas fa-chevron-circle-down"></i></code> Bei diesem Beispiel heißt das Icon //chevron-circle-down//. Ihr müsst dann noch ein //fa-// davor setzen.\\  
 + 
 +Ihr könnt alle eingebauten Icons mittels CSS leicht verändern. Dazu müsst ihr nur die Klasse //fas// mittels CSS ansprechen und könnt dort alle Attribute für Schriften anwenden: <code css>.fas { 
 +   color: #0000ff; 
 +   font-size: 120%; 
 +}</code> 
 + 
 +===== Wie kann ich die Übersichtsseite anpassen ? ===== 
 +Admidio zeigt normalerweise beim Aufruf und nach einer erfolgreichen Anmeldung eine Übersichtsseite mit verschiedenen Plugins an, wie zum Beispiel die letzten Ankündigungen, die letzten Dateien und Dokumente oder die anstehenden Geburtstage.\\  
 +{{:de:2.0:documentation:layout:overview.png?400|Admidio Übersichtsseite}}\\  
 +Möchte man nun einige der bereits hinterlegten Plugins nicht sehen oder weitere hinzufügen, so kann man dies in der dazugehörigen Template-Datei machen. Diese liegt unter ''www.deine-webseite.de/admidio/adm_themes/simple/templates/overview.tpl''. In dieser Datei findest du jetzt verschiedene HTML-Blöckewelche die folgende Struktur haben: <code html><div class="admidio-overview-plugin col-sm-6 col-lg-4 col-xl-3" id="admidio-plugin-birthday"> 
 +    <div class="card admidio-card"> 
 +        <div class="card-body"> 
 +            {load_admidio_plugin plugin="birthday" file="birthday.php"
 +        </div> 
 +    </div> 
 +</div></code> Suche dort nach deinem nicht mehr gewünschten Plugin ''plugin="birthday"'' und entferne anschließend diesen Block komplett.\\ \\  
 +Willst du ein weiteres Plugin hinzufügen, so kannst du so einen Block duplizieren und das Plugin hinterlegen. Wir erstellen jetzt eine einfache HTML-Seite die in der Übersicht eingebunden werden soll. Dazu legen wir im Ordner **adm_plugins** einen neuen Unterordner **test** an. In diesem Unterordner erstellen wir nun eine Datei ''ausgabe.html'' mit folgendem Inhalt: <code html><h3>Test</h3> 
 +Dies ist der Inhalt <b>einer beliebigen Html-Datei</b> aus einem Unterordner von adm_plugins.</code> Den Inhalt dieser Datei kannst du nun als weiteren Block in der Übersicht mit folgendem Code integrieren: <code html><div class="admidio-overview-plugin col-sm-6 col-lg-4 col-xl-3" id="admidio-card-plugin-test"> 
 +    <div class="card admidio-card"> 
 +        <div class="card-body"> 
 +            {load_admidio_plugin plugin="test" file="ausgabe.html"
 +        </div> 
 +    </div> 
 +</div></code>Das Ergebnis zusammen mit ein paar Plugins, die entfernt wurden, kann dann so aussehen:\\  
 +{{:de:2.0:documentation:layout:overview_customized.png?400|Angepasste Übersicht}}
  
-The example above looks like this:\\  
-**Files of this file type are not allowed on the server.** 
  • de/2.0/admidio_customization.1603217511.txt.gz
  • Last modified: 2020/10/20 20:11
  • by fasse