diff --git a/de/architecture/directory_structure.rst b/de/architecture/directory_structure.rst index 800fc868..299ffae5 100644 --- a/de/architecture/directory_structure.rst +++ b/de/architecture/directory_structure.rst @@ -3,29 +3,29 @@ Verzeichnisstruktur in Mapbender ################################ -app -*** -Dieses Verzeichnis beinhaltet: +application +*********** -* den php-Cache (`var/cache`) -* das log-Verzeichnis (`var/log`) -* das Konfigurationsverzeichnis (`config/`) -* Der Anwendungs-Kernel (`src/Kernel.php`) (wird über die FrontendController aufgerufen; darüber wird die gesamte Anwendung kontrolliert) -* das Autoladen (*autoload.php*) -* Verzeichnis für spezielle Anwendungsressourcen (`Resources/`) -* die Kommandozeilen-Anwendungen für Pflege und Management (`bin/console`) +Bei einer :ref:`Git-basierten Installation ` enthält das `application`-Verzeichnis beinahe sämtliche Mapbender-Komponenten. Wichtige Unterverzeichnisse und Dateien sind: +* Das :ref:`config`-Verzeichnis, +* Der Anwendungskernel (`src/Kernel.php`) als Zugangspunkt zu Symfony, +* Autoloading (`vendor/autoload.php`) generiert von Composer, +* Kommandozeilen-Anwendungen für Pflege und Management (``bin/console``, ``bin/phpunit``) und +* *.env* und *.env.local*: Globale Konfigurationsdateien, z.B. für Datenbank-URLs und SMTP-Server-Verbindungen. -config/ -------- +bin +=== -Grundlegende Konfigurationsdateien von Mapbender liegen im Verzeichnis `config/` sowie im Verzeichnis `config/packages`. Zwei Dateien sind dabei von besonderer Bedeutung: +Hier liegen diverse Bibliotheken. -* *parameters.yaml* -* `packages/doctrine.yaml` +config +====== -Weitere Informationen im Kapitel :ref:`yaml_de`. +Grundlegende Konfigurationsdateien von Mapbender liegen im Verzeichnis `config/` sowie im Verzeichnis `config/packages`. Diese Dateien sind dabei von besonderer Bedeutung: +* :ref:`doctrine.yaml` +* :ref:`parameters.yaml` config/applications ------------------- @@ -34,40 +34,31 @@ Als YAML definierte Anwendungen können in dem Verzeichnis `config/applications` Weitere Informationen im Kapitel :ref:`yaml_de`. - -bin -*** - -Hier liegen diverse Bibliotheken. - - mapbender -********* - -Verzeichnis des `Mapbender Submoduls `_. Liefert die Mapbender-spezifischen Bundles und den Mapbender-Code. +========= +* Verzeichnis des `Mapbender Submoduls `_. Liefert die Mapbender-spezifischen Bundles und den Mapbender-Code. +* Verzeichnis für spezielle Anwendungsressourcen (`Resources/`) mapbender/...../translations ---------------------------- -Verzeichnis: `mapbender/src/Mapbender/CoreBundle/Resources/translations/` +Die Übersetzungen werden in `YAML-Dateien `_ gespeichert. Jede Sprache benötigt eine YAML-Datei, wie z.B. *messages.fr.yaml* für die französische Übersetzung. - -Die Übersetzungen werden in `YAML-Dateien `_ gespeichert. Jede Sprache benötigt eine YAML-Datei, wie z.B. *messages.de.yaml* für die deutsche Übersetzung. +* Verzeichnis: `mapbender/src/Mapbender/CoreBundle/Resources/translations/` public -****** +====== -Dieses Verzeichnis muss vom Webserver veröffentlicht werden. Der Alias muss auf dieses Verzeichnis verweisen. -Dieses Verzeichnis beinhaltet die statischen Ressourcen wie css, js, favicon etc. +Dieses Verzeichnis muss vom Webserver veröffentlicht werden. Ein entsprechendes Alias muss auf dieses Verzeichnis verweisen. Es kontrolliert: -* *index.php*: FrontendController (PHP-Script, welches aufgerufen werden kann). -* *index_dev.php*: FrontendController als Zugangspunkt in die Entwicklungsumgebung. Kann standardmäßig nur von lokalen IP-Adressen aufgerufen werden. - +* *index.php*: FrontendController (PHP-Script, welches aufgerufen werden kann). Benutzt je nach Definition der Variable ``APP_ENV`` den Produktiv- oder Entwicklungsmodus (siehe :ref:`.env bzw. .env.local `). +* *index_dev.php*: Benutzt immer die Entwicklungsumgebung. Kann standardmäßig nur von der lokalen Hostumgebung aufgerufen werden. Lesen Sie mehr dazu, wie auch andere IPs für den Zugriff freigegeben werden können, unter :ref:`Produktions- und Entwicklungsumgebung und Caches`. +* `public/` beinhaltet öffentlich verfügbare Ressourcen wie css, js, favicon etc. public/bundles -------------- @@ -79,17 +70,28 @@ public/bundles bin/console assets:install --symlink --relative public -.. note:: **Hinweis**: Wenn Sie Windows benutzen, können Sie keine symbolischen Links verwenden. Daher müssen Sie das Kommando ``bin/console assets:install public`` nach jeder Änderung im Code aufrufen, um die Dateien in das Verzeichnis zu kopieren. +.. note:: **Hinweis**: Wenn Sie Windows benutzen, können Sie keine symbolischen Links verwenden. Daher müssen Sie das Kommando ``php.exe bin/console assets:install public`` nach jeder Änderung von JavaScript-, css- oder twig- sowie Bilddateien aufrufen, um die Dateien in das öffentliche Verzeichnis zu kopieren. src -*** +=== -* Verzeichnis für anwendungsspezifische Bundles (Kunden-Bundle) +Verzeichnis für anwendungsspezifische Bundles (Kunden-Bundle). + +* Der Anwendungs-Kernel (`src/Kernel.php`) wird über die FrontendController aufgerufen; darüber wird die gesamte Anwendung kontrolliert. + +var +=== + +Dieses Verzeichnis beinhaltet: +* die php-Caches (`var/cache/dev` and `var/cache/prod`), +* das log-Verzeichnis (`var/log`), +* das SQLite-Datenbank-Verzeichnis (`var/db/`). vendor -****** +====== -* Verzeichnis mit externen Bibliotheken, die via composer geladen wurden. Ressourcen werden von Symfony durch das Autoladen verwendet. +Verzeichnis mit externen Bibliotheken, die via Composer geladen wurden. Ressourcen werden von Symfony durch das Autoladen verwendet: +* Autoladen-Datei (*autoload.php*) diff --git a/de/customization/templates.rst b/de/customization/templates.rst index ca4fd08d..c8669788 100644 --- a/de/customization/templates.rst +++ b/de/customization/templates.rst @@ -3,38 +3,32 @@ Wie werden eigene Style-Vorlagen (templates) erzeugt? ##################################################### -Mapbender beinhaltet bereits Anwendungs-Vorlagen, sie befinden sich im Mapbender CoreBundle `Template`-Verzeichnis ``/application/mapbender/src/Mapbender/CoreBundle/Template``. +Mapbender beinhaltet bereits Anwendungs-Vorlagen. Sie befinden sich im Mapbender CoreBundle Template-Verzeichnis `/application/mapbender/src/Mapbender/CoreBundle/Template`. Häufig sollen jedoch eigene Anwendungs-Vorlagen und Administrationsoberflächen mit eigenem Corporate Design verwendet werden. Um Probleme bei einem Upgrade zu vermeiden, sollte für personalisierte Oberflächen ein eigenes Bundle verwendet werden. - Der Stil einer einzelnen Anwendung kann ebenfalls über den :ref:`css_de` angepasst werden. - Wie werden eigene Vorlagen erzeugt? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*********************************** **Schritte für die Einbindung:** -* Erzeugen eines eigenen Bundles -* Erzeugen eines neuen Namespaces -* Template PHP-Datei zur Registrierung der eigenen Vorlage erzeugen -* Erzeugen einer eigenen Twig-Datei -* Erzeugen eigener CSS-Datei(en) -* Registrierung des Bundles in src/Kernel.php -* Verwenden der neuen Vorlage +* Erzeugen eines eigenen Bundles, +* Erzeugen eines neuen Namespaces, +* Template PHP-Datei zur Registrierung der eigenen Vorlage erzeugen, +* Erzeugen einer eigenen Twig-Datei, +* Erzeugen eigener CSS-Datei(en), +* Verwenden der neuen Vorlage. Als Beispiel für die Einbindung einer eigenen Vorlage wurde ein Workshop/DemoBundle vorbereitet. Dieses kann verwendet und individuell verändert werden. -Sie können sich die Dateien unter folgendem Link herunterladen: - -* https://github.com/mapbender/mapbender-workshop/tree/master +Sie können sich die Dateien `im Workshop-Bundle `_ herunterladen. Erzeugen eines eigenen Bundles -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Anwender-Bundles werden im src-Verzeichnis ``/application/src`` abgelegt. +****************************** +Anwender-Bundles werden im `src`-Verzeichnis abgelegt. Die Struktur eines Bundles kann wie folgt aussehen: .. code-block:: bash @@ -61,12 +55,12 @@ Die Struktur eines Bundles kann wie folgt aussehen: Die folgenden Dateien können bearbeitet werden: -* twig-Datei: verändert die Struktur (z.B. - Löschen einer Komponente wie die Sidebar) -* css-Datei: verändert die Farben, Icons, Schriften +* twig-Datei: verändert die Struktur (z.B. - Löschen einer Komponente wie die Sidepane), +* css-Datei: verändert die Farben, Icons, Schriften. Erzeugen eines neuen Namespaces -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +******************************* In unserem Beispiel erzeugt die Datei *WorkshopDemoBundle.php* einen Namespace für das Bundle und referenziert auf das Template. @@ -94,14 +88,11 @@ In unserem Beispiel erzeugt die Datei *WorkshopDemoBundle.php* einen Namespace f } - Anlegen der eigenen Template-Datei -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In unserem Beispiel heißt die Template-Datei *FullscreenDemo.php*. Sie befindet sich unter ``src/Workshop/DemoBundle/Template/DemoFullscreen.php``. - -In der Template-Datei wird der Name des Templates, die Regionen die angelegt werden sollen sowie die verwendete Twig-Datei definiert. +********************************** +In unserem Beispiel heißt die Template-Datei *DemoFullscreen.php*. Sie befindet sich unter `src/Workshop/DemoBundle/Template/DemoFullscreen.php`. +In der Templates-Datei wird der Name des Templates, die Regionen die angelegt werden sollen sowie die verwendete Twig-Datei definiert. .. code-block:: php @@ -137,30 +128,30 @@ In der Template-Datei wird der Name des Templates, die Regionen die angelegt wer "/components/vis-ui.js/vis-ui.js-built.js" ); - public $twigTemplate = 'WorkshopDemoBundle:Template:demo_fullscreen.html.twig'; - } + public function getTwigTemplate() + { + return '@WorkshopDemoBundle/Resources/views/Template/demo_fullscreen.html.twig'; + } Eigene Twig-Datei erzeugen -~~~~~~~~~~~~~~~~~~~~~~~~~~ +************************** Die Twig-Dateien sind im folgenden Verzeichnis gespeichert: -``application/mapbender/src/Mapbender/CoreBundle/Resources/views/Template`` +* `application/mapbender/src/Mapbender/CoreBundle/Resources/views/Template` Kopieren Sie eine existierende Twig-Datei, speichern Sie diese unter einem neuen Namen und verändern Sie den Inhalt, z.B. die Farbe. -Verwenden Sie z.B. ``mapbender/src/Mapbender/CoreBundle/Resources/views/Template/fullscreen.html.twig`` und kopieren Sie diese nach ``/Workshop/DemoBundle/Resources/views/Template/fullscreen_demo.html.twig`` +Verwenden Sie z.B. `mapbender/src/Mapbender/CoreBundle/Resources/views/Template/fullscreen.html.twig` und kopieren Sie diese nach `/Workshop/DemoBundle/Resources/views/Template/fullscreen_demo.html.twig`. Eigene CSS-Datei erzeugen -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Erzeugen Sie eine leere CSS-Datei und geben Sie in dieser nur die CSS-Definitionen für Ihre Anwendungs-Vorlage an. -Es muss lediglich das CSS definiert werden, das vom Standard der Elemente abweicht. +************************* +Erzeugen Sie eine leere CSS-Datei und geben Sie in dieser nur die CSS-Definitionen für Ihre Anwendungs-Vorlage an. Es muss lediglich das CSS definiert werden, das vom Standard der Elemente abweicht. Mit Hilfe der Entwicklerwerkzeuge Ihres Browsers können Sie die bestehende Definition ermitteln, in Ihre CSS-Datei kopieren und hier anpassen. -Ihre CSS-Datei könnte wie folgt heißen: ``src/Workshop/DemoBundle/Resources/public/demo_fullscreen.css`` und die folgende Definition enthalten: +Ihre CSS-Datei könnte wie folgt heißen: `src/Workshop/DemoBundle/Resources/public/demo_fullscreen.css` und die folgende Definition enthalten: .. code-block:: css @@ -227,7 +218,7 @@ Das Ergebnis der wenigen Zeilen CSS sieht dann so aus: Beim Laden der neuen Anwendung wird eine CSS-Datei im web/assets-Verzeichnis angelegt: -* ``web/assets/WorkshopDemoBundle__demo_fullscreen__css.css`` +* `web/assets/WorkshopDemoBundle__demo_fullscreen__css.css` Wenn Sie die CSS-Datei weiter bearbeiten, müssen Sie die unter ``web/assets`` generierte Datei löschen, damit diese neu geschrieben wird und die Änderungen wirksam werden. Der Browser-Cache sollte ebenfalls geleert werden. @@ -242,13 +233,13 @@ Styling der Administrationsseiten Passen Sie die vorhandenen CSS-Dateivorlagen für die unterschiedlichen Bereiche an: -* login.css : Anpassung des Designs der Login-Oberfläche (Anmelde-Seite) -* manager.css : Anpassung des Designs der Verwaltungs/Administrations-Oberfläche (Anwendungsübersicht u.ä.) -* password.css : Anpassung des Designs der Passwort-Oberfläche (Passwort vergessen u.ä.) +* *login.css*: Anpassung des Designs der Login-Oberfläche (**Anmelden**-Seite), +* *manager.css*: Anpassung des Designs der Verwaltungs/Administrations-Oberfläche (**Anwendungsübersicht** etc.), +* *password.css*: Anpassung des Designs der Passwort-Oberfläche (**Passwort vergessen**). Es muss lediglich das CSS definiert werden, das vom Standard der Administrationsoberfläche abweicht. -Auf die CSS-Dateien wird über das FOMManagerBundle und FOMUserBundle referenziert. Diese müssen unter ``app/Resources/`` abgelegt werden. Die bereits enthaltenen Twig-Dateien überschreiben nach der erfolgreichen Einrichtung die Standard-Einstellungen (Vorgaben aus der manager.html.twig Datei). +Auf die CSS-Dateien wird über das FOMManagerBundle und FOMUserBundle referenziert. Diese müssen unter `app/Resources/` abgelegt werden. Die bereits enthaltenen Twig-Dateien überschreiben nach der erfolgreichen Einrichtung die Standard-Einstellungen (Vorgaben aus der *manager.html.twig* Datei). Alternativ kann auch die bisherige Twig-Datei kopiert und angepasst werden. .. code-block:: bash @@ -264,16 +255,16 @@ Bei unveränderter Übernahme der Stylevorgaben sieht die Administration dann so Registrieren des Bundles in config/bundles.php -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +********************************************** -Falls noch nicht geschehen, setzen Sie Schreibrechte für das public-Verzeichnis für Ihren Webserver-Benutzer: +Falls noch nicht geschehen, setzen Sie Schreibrechte für das `public`-Verzeichnis für Ihren Webserver-Benutzer: .. code-block:: bash chmod ug+w public -Aktualisieren Sie das public-Verzeichnis. Jedes Bundle hat seine eigenen Assets - CSS Dateien, JavaScript-Dateien, Bilder und mehr - diese müssen in das public-Verzeichnis kopiert werden. +Aktualisieren Sie das `public`-Verzeichnis. Jedes Bundle hat seine eigenen Assets - CSS Dateien, JavaScript-Dateien, Bilder und mehr - diese müssen in das `public`-Verzeichnis kopiert werden. .. code-block:: bash @@ -291,15 +282,15 @@ Jetzt sollte beim Anlegen einer neuen Anwendung die neue Vorlage in der Liste er Verwendung der eigenen Vorlage -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +****************************** Die neue Anwendungs-Vorlage kann über verschiedene Wege verwendet werden: Einbindung in YAML-Anwendungen -****************************** +============================== -Sie können nun die YAML-Anwendungen unter ``config/applications`` anpassen und auf das neue Template verweisen. +Sie können nun die YAML-Anwendungen unter `config/applications` anpassen und auf das neue Template verweisen. .. code-block:: yaml @@ -307,27 +298,26 @@ Sie können nun die YAML-Anwendungen unter ``config/applications`` anpassen und Einbindung in eine neue Anwendungen über das Backend -**************************************************** +==================================================== + Wenn Sie eine neue Anwendung mit der Mapbender-Administration erzeugen, können Sie eine Vorlage (Template) auswählen. Einbindung in eine bestehende Anwendung -*************************************** +======================================= -Für bereits existierende Anwendungen kann das Template über die Mapbender Datenbank in der Tabelle ``mb_core_application`` in der Spalte *template* angepasst werden. +Für bereits existierende Anwendungen kann das Template über die Mapbender Datenbank in der Tabelle **mb_core_application** in der Spalte **template** angepasst werden. -Für das *WorkshopDemoBundle* wird hier statt des Eintrags ``Mapbender\CoreBundle\Template\Fullscreen`` der Eintrag ``Workshop\DemoBundle\WorkshopDemoBundle`` angegeben. +Für das **WorkshopDemoBundle** wird hier statt des Eintrags ``Mapbender\CoreBundle\Template\Fullscreen`` der Eintrag ``Workshop\DemoBundle\WorkshopDemoBundle`` angegeben. Anwendungsfälle -~~~~~~~~~~~~~~~ +*************** -Wie kann das Logo verändert werden? -Wie kann der Anwendungstitel angepasst werden? -Wie stelle ich die Sprache ein? +F: Wie kann das Logo verändert werden? Wie kann der Anwendungstitel angepasst werden? Wie stelle ich die Sprache ein? -Auf diese und weitere Fragen finden Sie Antworten im Kapitel :ref:`yaml_de`. +A: Auf diese und weitere Fragen finden Sie Antworten im Kapitel :ref:`yaml_de`. Wie können eigene Buttons eingebunden werden? @@ -364,9 +354,9 @@ Wenn Sie ein Bild nutzen möchten, legen Sie dieses am besten in Ihrem Bundle ab Probieren Sie es aus -~~~~~~~~~~~~~~~~~~~~ +******************** -* Laden Sie das Workshop/DemoBundle herunter: https://github.com/mapbender/mapbender-workshop +* Laden Sie das Workshop/DemoBundle `hier `_ herunter. * Ändern Sie die Farbe Ihrer Icons. * Ändern Sie die Größe Ihrer Icons. * Ändern Sie die Farbe der Oberen Werkzeugleiste. diff --git a/de/installation/installation_configuration.rst b/de/installation/installation_configuration.rst index a080af31..bd6cc75f 100644 --- a/de/installation/installation_configuration.rst +++ b/de/installation/installation_configuration.rst @@ -138,7 +138,7 @@ Die Produktionsumgebung wird mit der URL http://localhost/index.php aufgerufen, die Entwicklungsumgebung mit der URL http://localhost/index_dev.php. Der Aufruf über ``index_dev.php`` kann und sollte nur vom localhost erfolgen. -Sie können die Datei *index_dev.php* anpassen und IP-Adressen hinzufügen, so dass auch von diesen Adressen der Entwicklungsmodus erreicbar ist. +Sie können die Datei *index_dev.php* anpassen und IP-Adressen hinzufügen, so dass auch von diesen Adressen der Entwicklungsmodus erreichbar ist. Es gibt Unterschiede im Verhalten von *index.php* und *index_dev.php*: diff --git a/de/installation/installation_git.rst b/de/installation/installation_git.rst index c994f691..fc27fffe 100644 --- a/de/installation/installation_git.rst +++ b/de/installation/installation_git.rst @@ -1,7 +1,7 @@ .. _installation_git_de: Git-basierte Installation -########################## +######################### .. note:: Die Git-basierte Installation ist für die Entwicklung von Mapbender gedacht oder für projektspezifische Anpassungen, die in einem geklonten Mapbender-Starter abgelegt werden können. Dort können Sie ihre eigenen Templates, Ihre eigenen Anwendungen oder eigene Bundles hinterlegen. Über den Composer laden Sie dann Mapbender und alle weiteren genutzten Module (z.B. Digitizer) in der Version ein, die sie benötigen. Bei einem Mapbender-Update vergleichen Sie den Stand der Mapbender-Starter-Repositories. Die grundsätzlichen Anpassungen sind die Versionen in der *composer.json*. diff --git a/en/architecture.rst b/en/architecture.rst index 8ee7a8f5..3db48067 100644 --- a/en/architecture.rst +++ b/en/architecture.rst @@ -4,7 +4,7 @@ Architecture ============ .. toctree:: - :maxdepth: 1 + :maxdepth: 2 architecture/components architecture/directory_structure diff --git a/en/architecture/directory_structure.rst b/en/architecture/directory_structure.rst index 18d4e4e8..722fa857 100644 --- a/en/architecture/directory_structure.rst +++ b/en/architecture/directory_structure.rst @@ -3,91 +3,94 @@ Directory structure in Mapbender ################################ -app -*** -This directory contains: +application +*********** -* the php-Cache (`var/cache`) -* the logs (`var/log`) -* the configuration directory (`config/`) -* the application kernel (`src/Kernel.php`) (is called by the FrontendControllers and controls the whole application) -* the Autoloading (*autoload.php*) -* the application specific resource directory (*Resources*) -* the command line application for maintaining and management tasks (`bin/console`) +Only in :ref:`Git-based installations `, the `application` directory contains the default Mapbender application. Some important subdirectories and files are: +* the :ref:`config` directory, +* the application kernel (`src/Kernel.php`) as entry point to the Symfony application, +* the Autoloading (`vendor/autoload.php`), auto-generated by Composer, +* the command line applications for maintaining and management tasks (``bin/console``, ``bin/phpunit``) and +* *.env* and *.env.local*: Global configuration files, e.g. for database urls and smtp server connection. -config ------- +bin +=== -Basic configuration files of Mapbender are placed in the `config/` directory and the `config/packages` directory. Two files are of particular importance: +Here you find some libraries. -* *parameters.yaml* -* `packages/doctrine.yaml` +config +====== -More Information: :ref:`yaml`. +Basic configuration files of Mapbender are placed in the `config/` directory and the `config/packages` directory. These files are of particular importance: + +* :ref:`doctrine.yaml` +* :ref:`parameters.yaml` - config/applications ------------------- The directory `config/applications` contains all applications that are defined in a YAML file. -More information in :ref:`yaml` . - - -bin -*** - -Here you find some libraries. - +Find more information in :ref:`yaml` . mapbender -********* - -Directory of the `Mapbender submodule `_. Provides the Mapbender-specific bundles and the Mapbender code. +========= +* Directory of the `Mapbender submodule `_. Provides the Mapbender-specific bundles and the Mapbender code. +* Directory for application resources (`Resources/`) mapbender/...../translations ---------------------------- -Directory: `mapbender/src/Mapbender/CoreBundle/Resources/translations/` - -The translations are stored in `YAML files `_. Every language needs a YAML-file, like *messages.en.yaml* for the English translation. +The translations are stored in `YAML files `_. Every language needs a YAML-file, like *messages.fr.yaml* for the French translation of Mapbender. +* Directory path: `../mapbender/src/Mapbender/CoreBundle/Resources/translations/` public -****** +====== -This directory has to be published by the webserver. The ALIAS has to refer to this directory. -It contains the static resoures like css, js, favicon etc. +This directory has to be published by the webserver. The alias has to refer to this directory. It controls: -* *index.php* - the FrontendController (PHP script which can be called). -* *index_dev.php* - FrontendController for easy access to the development environment. By default, it can only be accessed from local IP addresses. +* *index.php*: The FrontendController (PHP script which can be called). Uses the productive or development mode depending on the definition of the APP_ENV variable, see :ref:`.env or .env.local file `. +* *index_dev.php*: Always uses the dev environment. Per default, access is only allowed from localhost. Find out more about giving access to other IP addresses in :ref:`Production and Development environment and Caching`. +* `public/` also contains the static resources like css, js, favicon etc. public/bundles -------------- -* storage for the static resources of the single bundles. -* the following command copies the resources from the bundles to the folder: +* Is the storage for the static resources of the single bundles. +* The following command copies the resources from the bundles to the folder: .. code-block:: yaml bin/console assets:install --symlink --relative public -.. note:: If you use Windows, you cannot create symbolic links and therefore have to run the command ``bin/console assets:install public`` to copy the files to the directory after every change in the code. +.. note:: If you use Windows, you cannot create symbolic links and therefore have to run the command ``php.exe bin/console assets:install public`` to copy the files to the public directory after every change in JavaScript-, css-, twig- or image files. src -*** +=== -* directory for applications specific bundles +Directory for application specific code and resources. + +* The application kernel (`src/Kernel.php`) is called by the FrontendControllers and controls the whole application. + +var +=== + +This directory contains: +* the caches (`var/cache/dev` and `var/cache/prod`), +* the logs (`var/log`), +* Sqlite-databases (`var/db/`). vendor -****** +====== -* Directory for external libraries (loaded by composer) are placed. Resources are used by Symfony using the Autoloading. +Directory for external libraries (loaded by Composer) are placed here. Resources are used by Symfony using Autoloading: +* Autoloading: *autoload.php* diff --git a/en/customization/templates.rst b/en/customization/templates.rst index c1c3d8b7..868caf59 100644 --- a/en/customization/templates.rst +++ b/en/customization/templates.rst @@ -3,33 +3,27 @@ How to create your own Template? ################################ -Mapbender comes with application templates out of the box, you can find them in the Mapbender CoreBundle ``/application/mapbender/src/Mapbender/CoreBundle/Template``. But usually you want to use your own templates with your own corporate design. - +Mapbender comes with application templates out of the box. You can find them in the Mapbender CoreBundle: `/application/mapbender/src/Mapbender/CoreBundle/Template`. +But usually you want to use your own templates with your own corporate design. To prevent overwriting your custom templates after an Mapbender upgrade you should create an extra bundle to safely store your custom files. - You can also change the style of your application with the built-in :ref:`CSS-Editor `. - **Steps for including your templates:** -* Create your own bundle -* Create a new namespace -* Create a template PHP-file to register your template -* Create your own Twig-file -* Create your own CSS-file(s) -* Register your bundle in src/Kernel.php -* Use your template +* Create your own bundle, +* Create a new namespace, +* Create a template PHP-file to register your template, +* Create your own Twig-file, +* Create your own CSS-file(s), +* Use your template. -To help you we prepared a Workshop/DemoBundle, which can be used not only for application templates, but also for customizing the administration interface. For the following steps, you can download the files with the following links: - -* https://github.com/mapbender/mapbender-workshop/tree/master +To help you, we prepared a Workshop/DemoBundle, which can be used not only for application templates, but also for customizing the administration interface. For the following steps, you can download the files from the `Workshop bundle `_. Create your own bundle -~~~~~~~~~~~~~~~~~~~~~~ - -User bundles are stored in the src-directory ``/application/src``. +********************** +User bundles are stored in the `src`-directory. This is how the structure can look like: @@ -57,14 +51,14 @@ This is how the structure can look like: The following files have to be altered for design changes: -* twig-file: to change the structure (e.g. - delete a component like the sidebar) -* css-file: to change colors, icons, fonts +* twig-file: to change the structure (e.g. - delete a component like the sidebar), +* css-file: to change colors, icons, fonts. Create a new namespace -~~~~~~~~~~~~~~~~~~~~~~ +********************** -The file WorkshopDemoBundle.php creates the namespace for the bundle and refers to the template and to your css-files. +The *WorkshopDemoBundle.php* file creates the namespace for the bundle and refers to the template and to your css files. .. code-block:: php @@ -90,14 +84,11 @@ The file WorkshopDemoBundle.php creates the namespace for the bundle and refers } - Create your own template file -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In our example the template file is called FullscreenDemo.php. You find it at ``src/Workshop/DemoBundle/Template/FullscreenDemo.php``. - -In the template file you define the name of your template, the regions that you want to provide and refer to a twig file. +***************************** +In our example, the template file is called *DemoFullscreen.php*. You can find it at `src/Workshop/DemoBundle/Template/DemoFullscreen.php`. +In the templates file, you define the name of your template, the regions that you want to provide and refer to a twig file. .. code-block:: php @@ -133,29 +124,30 @@ In the template file you define the name of your template, the regions that you '/components/jquerydialogextendjs/jquerydialogextendjs-built.js', "/components/vis-ui.js/vis-ui.js-built.js" ); - public $twigTemplate = 'WorkshopDemoBundle:Template:demo_fullscreen.html.twig'; - } - + + public function getTwigTemplate() + { + return '@WorkshopDemoBundle/Resources/views/Template/demo_fullscreen.html.twig'; + } + Create your own twig-file -~~~~~~~~~~~~~~~~~~~~~~~~~ +************************* You find the twig-files at the following path: -* ``application/mapbender/src/Mapbender/CoreBundle/Resources/views/Template`` +* `application/mapbender/src/Mapbender/CoreBundle/Resources/views/Template` The easiest way to create your own twig file is to copy an existing twig, save it under a new name and change the content like colors. - -Use the existing template from ``mapbender/src/Mapbender/CoreBundle/Resources/views/Template/fullscreen.html.twig`` and copy it to ``fullscreen_demo.html.twig``. +Use the existing template from `mapbender/src/Mapbender/CoreBundle/Resources/views/Template/fullscreen.html.twig` and copy it to *fullscreen_demo.html.twig*. -Create your own css-file -~~~~~~~~~~~~~~~~~~~~~~~~ +Create your own CSS file +************************ Create an empty css-file and fill it with content. You only have to define the parts that have to look different from the default style of the element. +Developer tools can help you to find out the styles you want to change. -Firebug can help you to find out the styles you want to change. - -Your file could be named like this: ``src/Workshop/DemoBundle/public/demo_fullscreen.css`` and have the following definition: +Your file could be named `src/Workshop/DemoBundle/public/demo_fullscreen.css` and have the following definition: .. code-block:: css @@ -220,11 +212,11 @@ The result of these few lines of css will look like this: .. image:: ../../figures/workshop_application.png :scale: 80 -When you open your new application a css-file will be created at: +When you open your new application, a css-file will be created at: -* ``web/assets/WorkshopDemoBundle__demo_fullscreen__css.css`` +* `web/assets/WorkshopDemoBundle__demo_fullscreen__css.css` -If you do further edits at your css file you may have to delete the generated css file in the assets directory to see the changes. You should also clear the browser cache. +If you do further edits at your css file, you may have to delete the generated css file in the assets directory to see the changes. You should also clear the browser cache. .. code-block:: bash @@ -236,15 +228,14 @@ Style the administrational pages Please change the following css-files for the :ref:`backend` pages: - * login.css : Change the design of the login page - * manager.css : Change the design of the administration pages (e.g. application overview) - * password.css : Change the design of the password pages (e.g. Reset Password - page) + * *login.css*: Change the design of the **login page**, + * *manager.css*: Change the design of the administration pages (e.g. **Application**), + * *password.css*: Change the design of the password pages (e.g. **Reset Password**). You only have to define the parts that have to look different than the default page style. +Developer tools can help you to find out the styles you want to change. -Firebug can help you to find out the styles you want to change. - -Referencing the CSS-files is possible with FOMManagerBundle and FOMUserBundle. They must be filed under ``app/Resources/``. The already contained twig-files overwrite the default settings if configured correctly (Requirements from manager.html.twig file). +Referencing the CSS-files is possible with FOMManagerBundle and FOMUserBundle. They must be filed under `app/Resources/`. The already contained twig-files overwrite the default settings if configured correctly (Requirements from *manager.html.twig* file). Alternatively, it is possible to copy a twig-file and adjust it afterwards. .. code-block:: bash @@ -253,16 +244,16 @@ Alternatively, it is possible to copy a twig-file and adjust it afterwards. Register your bundle in config/bundles.php -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +****************************************** -Add write access to the ``public`` directory for your webserver user, if need be: +Add write access to the `public` directory for your webserver user, if need be: .. code-block:: bash chmod ug+w public -Update the ``public`` directory. Each bundle has its own assets - CSS files, JavaScript files, images and more - but these need to be copied into the public web folder: +Update the `public` directory. Each bundle has its own assets - CSS files, JavaScript files, images and more - but these must be copied into the public `web` folder: .. code-block:: bash @@ -280,13 +271,15 @@ Now your template should show up in the template list when you create a new appl How to use a new template -~~~~~~~~~~~~~~~~~~~~~~~~~ +************************* + There are different ways of how to use the new template: -Usage in YAML-applications -************************** -You can adjust the YAML-applications in ``config/applications`` and change the template parameter. +Usage in YAML applications +========================== + +You can adjust the YAML-applications in `config/applications` and change the template parameter. .. code-block:: yaml @@ -294,24 +287,26 @@ You can adjust the YAML-applications in ``config/applications`` and change the t Usage in new applications from the backend -****************************************** +========================================== If you create a new application in the administration interface of Mapbender, you can choose the new template. Usage in an existing application -******************************** +================================ -For existing applications you can change the parameter in the Mapbender database in the column ``template`` of the table ``mb_core_application``. +For existing applications, you can change the parameter in the Mapbender database in the column **template** of the table **mb_core_application**. -For the *WorkshopDemoBundle* you change the entry from ``Mapbender\CoreBundle\Template\Fullscreen`` to ``Workshop\DemoBundle\WorkshopDemoBundle``. +For the **WorkshopDemoBundle**, you can change the entry from ``Mapbender\CoreBundle\Template\Fullscreen`` to ``Workshop\DemoBundle\WorkshopDemoBundle``. Usecases -~~~~~~~~ +******** + +Q: How do I change the logo, the title and the language? + +A: This and more tips can be found under :ref:`yaml`. -How do I change the logo, the title and the language? -This and more tips can be found here: :ref:`yaml`. How do I change the buttons? **************************** @@ -328,7 +323,7 @@ Mapbender uses 'Font Awesome Icons' font icon collection: font-style: normal; } -In your css-file you can refer to a font images like this: +In your CSS file, you can refer to a font images like this: .. code-block:: css @@ -336,7 +331,7 @@ In your css-file you can refer to a font images like this: content: "\f02f"; } -If you want to use an image you could place the image in your bundle and refer to it like this +If you want to use an image, you could place it in your bundle and refer to it like this: .. code-block:: css @@ -346,12 +341,12 @@ If you want to use an image you could place the image in your bundle and refer t Try this out -~~~~~~~~~~~~ - -* you can download the Workshop/DemoBundle at https://github.com/mapbender/mapbender-workshop -* change the color of your icons -* change the size of your icons -* change the color of the toolbar -* use an image instead of a font-icon for your button -* move the position of your overview to the left -* Have a look at the workshop files to see how it works +************ + +* you can download the Workshop/DemoBundle `here `_, +* change the color of your icons, +* change the size of your icons, +* change the color of the toolbar, +* use an image instead of a font-icon for your button, +* move the position of your overview to the left, +* Have a look at the workshop files to see how it works.