Anpassungen APP-CMS UI¶
Anpassungen AngularJS UI¶
HTML-Code¶
Die Oberfläche kann an bestimmten Stellen mit eigenem HTML-Code erweitert werden. Diese Stellen sind im Original-Angular-HTML-Quellcode wie folgt gekennzeichnet:
1 | <pim-plugin key="BLOCK_NAME" uiblocks="uiblocks"></pim-plugin> |
Über den BLOCK_NAME kann an der gewünschten Stelle in custom/app.php eigener Code eingefügt werden:
1 2 | <?php $app['uiManager']->addBlock('NAVIGATION_PREPEND', 'blocks/deploy.html'); |
Die einzubindenden Block-Templates müssen im Ordner /custom/Frontend/ui/default/views liegen. In den Block-Templates besteht der Zugriff auf alle Variablen im Scope des entsprechend übergeordneten Templates/Bereiches.
Beispiel
custom/app.php
1 2 | <?php $app['uiManager']->addBlock('LIST_TABLE_BODY_COL_APPEND', 'blocks/col.html'); |
Fügt an jede Spalte in der Auflistung von Objekten folgenden HTML-Code ein:
/custom/Frontend/ui/default/views/blocks/col.html
1 | <button title="Infos zu Objekt ID {{object.id}}"><span class="glyphicon glyphicon-info-sign"></span></button> |
Hinweis
Die jeweiligen Blöcke, bzw. die entsprechenden Block-Namen sind aus den HTML-Dateien unter /appcms/public/ui oder dem HTML-Quelltext des APP-CMS UI auszulesen.
Logo¶
custom/config.php
1 2 | <?php $configDefault->FRONTEND_CUSTOM_LOGO = true; |
Hinweis
Das Logo muss in der entsprechenden Auflösung (185x44px) unter folgendem Pfad abgelegt werden: custom/Frontend/ui/default/img/logo.png
Login-Hintergrund¶
custom/config.php
1 2 | <?php $configDefault->FRONTEND_CUSTOM_LOGIN_BG = true; |
Hinweis
Das Logo muss in der entsprechenden Auflösung (185x44px) unter folgendem Pfad abgelegt werden: custom/Frontend/ui/default/img/bg_login.jpg
Titel¶
custom/config.php
1 2 | <?php $configDefault->FRONTEND_TITLE = "MaxMustermann APP-CMS"; |
Willkommens-Meldung¶
custom/config.php
1 2 | <?php $configDefault->FRONTEND_WELCOME = "Willkommen im MaxMustermann APP-CMS"; |
Benutzerdefinierte UI-Routes¶
UI-Manager¶
Eigene AngularJS-Routen können über den UI-Manager Areanet\PIM\Classes\Manager\UIManager in der custom/app.php hinzugefügt werden. Der UI-Manager ist unter $app['uiManager'] erreichbar.
addRoute($route, $templatePath, $controllerName)
Parameter | Typ | Optional | Beschreibung |
---|---|---|---|
$route | String | nein | URL-Route |
$templatePath | String | nein | Pfad zum Template relativ zu custom/Frontend/ui/default/views |
$controllerName String | nein | AngularJS Controller-Name. Benutzerdefinierte Controller sollten unter custom/Frontend/ui/default/scripts/controllers liegen. |
addJSFile($filePath)
Parameter | Typ | Optional | Beschreibung |
---|---|---|---|
$filePath | String | nein | Pfad zur einzubindenden JS-Datei relativ zu custom/Frontend/ui/default/scripts |
addCSSFile($filePath)
Parameter | Typ | Optional | Beschreibung |
---|---|---|---|
$filePath | String | nein | Pfad zur einzubindenden CSS-Datei relativ zu ccustom/Frontend/ui/default/styles/ |
addAngularModule($moduleName, $path)
Parameter | Typ | Optional | Beschreibung |
---|---|---|---|
$moduleName | String | nein | Name des einzubindenden, externen AngularJS-Moduls |
$path | String | nein | Pfad zum einzubindenden, externen AngularJS-Moduls relativ zu ccustom/Frontend/ui/default/scripts/ |
Beispiel UI-Route¶
custom/app.php
1 2 3 | <?php $app['uiManager']->addRoute('/custom/deploy', 'deploy.html', 'DeployCtrl'); $app['uiManager']->addJSFile('controllers/list-button.controller.js'); |
custom/Frontend/ui/default/scripts/controllers/list-button.controller.js
1 2 3 4 5 6 7 8 9 10 11 12 | (function() { 'use strict'; angular .module('app') .controller('DeployCtrl', DeployCtrl); function DeployCtrl($scope, $rootScope, $location, localStorageService, $cookies){ } })(); |
Beispiel Angular-Module¶
Bindet das Moule Angular File Saver zur Verwendung im JS-Code ein.
custom/app.php
1 2 3 | <?php $app['uiManager']->addJSFile('FileSaver.js'); $app['uiManager']->addAngularModule('ngFileSaver', 'angular-file-saver.js'); |
custom/Frontend/ui/default/scripts/controllers/download.controller.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | (function() { 'use strict'; angular .module('app') .controller('DownloadCtrl', DownloadCtrl); function DownloadCtrl($routeParams, localStorageService, FileSaver){ $http({ method: 'GET', url: '/file/get/' + $routeParams['fileId'], headers: { 'X-Token': localStorageService.get('token') }, responseType: 'blob' }).then(function successCallback(response) { var data = new Blob([response.data], { type: 'application/pdf' }); FileSaver.saveAs(data, $routeParams['fileId'] + '.pdf'); }, function errorCallback(response) { //Error }); } } |
Filter vorbelegen¶
In den Auflistung (list-Controller) können Filter von folgende Feldtypen durch URL-Parameter vorbelegt werden:
- join
- multijoin
Der URL-Aufruf lautet wie folgt:
1 | #/list/[ENTITY?]?f_[PROPERTY]=[VALUE] |
Um z.B. direkt die Ansprechpartner einer Firma mit der ID=23 anzuzeigen:
1 | #/list/Ansprechpartner?f_firma=23 |