Posts

Extension-Einstellungen in Typo3 erstellen

Bild
Sie brauchen Einstellungen für Ihre TYPO3-Erweiterungen, auf die Sie über PHP-Klassen zugreifen wollen? Wenn Sie Konstanten dafür nehmen wird dies allerdings schwer. Hierzu brauchen Sie Plugin-Einstellungen. Diese sind dann später in der Extension-Configuration in den Settings auffindbar. Hierzu müssen Sie in das Haupt-Verzeichnis einfach nur eine Datei erstellen, welche ext_conf_template.txt heißt. Dort können Sie dann wie bei den Konstanten Einstellungen definieren. # cat=MyExtension/Title; type=string; label=Title:The Title! title = In PHP-Klassen können Sie die Einstellungen dann wie folgt abrufen: public static function findConstants ( $key ) { try { $utility = GeneralUtility:: makeInstance ( ExtensionConfiguration:: class ) ; $extension = $utility -> get ( "ext_key" ) ; $current = $extension ; foreach (explode( "." , $key ) as $item ) { $current = $current [ $item ] ; } retu

Typo3 Backend: Ansicht des Content-Elements über BackendHook ändern

Bild
  Wenn man in einem Content-Element in Typo3 eigene Felder hinzugefügt hat oder benutzerdefinierte Daten in Typo3-Feldern wie Layout hat, kann man diese durch hinzufügen von einem Hook in die Erweiterung als Label hinzufügen. class BackendContentHook implements PageLayoutViewDrawFooterHookInterface { public function preProcess ( PageLayoutView & $parentObject , & $info , array & $row ) { ... } } Fügen Sie diese Klasse in das Verzeichnis /Classes/Hooks hinzu. Hier können Sie wie folgt die Ansicht hinzufügen: $info [] = " <b> Layot:</b> " . $ row['layout'] ; Über LocalizationUtility:: translate (...); können Sie dort auch internationalisierte Labels hinzufügen.

JavaFX von der IDE bis zur Auslieferung Teil 6: Das Auge isst mit

Bild
 Im letzte Teil haben wir unsere Anwendung auch für das internationale Publikum startklar gemacht. Nun wollen wir das Design der Anwendung ein wenig anpassen. JavaFX-Anwendungen lassen sich über CSS beliebig verändern. Hierzu gibt es online von Oracle ein Referenz . Um ein neues Stylesheet zu erstellen legen Sie in den resources ein Ordner styles und darin eine neue CSS-Datei mit dem Name style.css an. Diese hat folgenden Inhalt: . button { -fx-background-color : #708090 ; -fx-border-color : #000 ; -fx-text-fill : #fff ; -fx-font-family : "Arial" ; } Um nun aber auch noch die Anwendung mit der CSS-Datei zu verknüpfen, müssen wir noch ein bisschen coden. Wir fügen folgenden Code in die Datei HalloJavaFX.java in die Methode start ein:  String stylesheet = Objects. requireNonNull ( HalloJavaFX. class .getResource( "/styles/style.css" ) ).toExternalForm() ; scene.getStylesheets().add(stylesheet) ; So schnell können Sie sämtliche Buttons vom

JavaFX von der IDE bis zur Auslieferung Teil 5: Jetzt wird es international

Bild
 Nachdem unser Taschenrechner nun funktioniert, wollen wir ihn auch für ausländisches Publikum lesbar machen. Dazu müssen wir lokalisierten Text in Resourcen auslagern. Deshalb wechseln wir in den Ordner Resources erstellen einen neuen Ordner lang und fügen dort über New ein neues Resource-Bundle ein. Hier legen Sie neue Locales an, wie hier zum Beispiel deutsch. Die Default-Locale wäre in diesem Fall Englisch, sie wird genommen, wenn sonst keine Locale zutrifft. Der Inhalt der lang.properties ist: application.title = Hello JavaFX application.field1 = first Number application.field2 = second Number  Der Inhalt der lang_de.properties ist: application.title = Hallo JavaFX application.field1 = erste Zahl application.field2 = zweite Zahl Nun erstellen wir eine neue Funktion in der Datei HalloJavaFX, welche auf die Resource-Bundles zugreift: public static ResourceBundle getLanguage () { if (HalloJavaFX. resourceBundle == null ) { ClassLoader classLoader = new URLClassLoader( new

JavaFX von der IDE bis zur Auslieferung Teil 4: Action bitte

Bild
 In den letzten Teilen haben wir unsere Oberfläche mit Leben gefüllt, leider sind sämtliche Komponenten noch relativ inaktiv. Es gibt mehrere Möglichkeiten unsere Komponenten mit Aktionen zu füllen. Zum einen kann man eine fx:id vergeben, über die man anschließend im Controller auf die Komponente zugreifen kann. Zum anderen kann man in onAction auch direkt einen Funktionsnamen übergeben. Um auf eine Komponente im Controller zuzugreifen muss man die Komponent im Kopf mit Anotation @FXML global definieren. Beispiel: Das erste Textfeld gibt man die ID txtNumber1 . Um auf diese Komponenten im Controller darauf zuzugreifen muss man nun vor onInitialize die Komponente deklarieren: private @FXML TextField txtNumber1 ; Hat man direkt eine Funktion in onAction eingetragen, so muss man diese auch im Controller definieren. @FXML public void enterCalculation (ActionEvent actionEvent) {} Man muss hierbei nicht unbedingt ActionEvent definieren. Hat man nur eine ID vergeben, so kann man auch hier du

JavaFX von der IDE bis zur Auslieferung Teil 3: Die Oberfläche

Bild
 Beim letzten Teil haben wir die Applikation zum ersten Mal starten können. Das Fenster, das sich geöffnet hat sah aber noch ziemlich leer aus, das wollen wir nun ändern.                   Dazu öffnen wir die Datei Main.fxml , welche sich im resources-Ordner befindet. Sie können nun auf 2 Wege Leben in den Dialog füllen. Wenn Sie sich auskennen, können Sie die XML-Dateien direkt ändern, andernfalls wechseln Sie in den Scene-Builder und können dort Ihre Schaltflächen, in die Oberfläche ziehen. Falls Sie den Scene-Builder noch nicht genutzt haben, müssen Sie diesen zuerst installieren                  Das Fenster des Scene-Builder ist in 3 Teile eingeteilt. Im linken Teil können Sie neue Komponenten per Drag und Drop auf das Formular ziehen, welche sich in der Mitte befindet. Im rechten Teil befinden sich die Eigenschaften der entsprechenden Komponenten.                       Das Eigenschafts-Fenster ist wiederum in 3 Bereiche eingeteilt. Zum einen gibt es der Bereich in denen Sie Eigen

JavaFX von der IDE bis zur Auslieferung Teil 2: Der erste Start

Bild
 Im letzten Teil haben wir die Konfigurationsdatei für Maven für unser erstes Projekt eingerichtet. In diesem Teil werden wir zum ersten Mal unser Projekt erfolgreich zum Laufen bringen. Wir legen in den Resourcen nun eine Datei mit der Endung .fxml ein. Dazu legen wir einen Ordner in dem Ordner resources an, den wir fxml nennen. Dort legen wir nun eine Datei Main.fxml an. Dies können wir über das Kontext-Menu der Entwicklungsumgebung erreichen, dort wählen wir New und darin FXML-File aus. Diese Datei lassen wir nun erst einmal so. Nun wechseln wir in den Ordner java und dort in das Package, das wir am Ende des letzten Teils erstellt haben. Dort erstellen wir die Java-Klasse HalloJavaFX und ein Package mit dem Namen controller . In diesem Package legen wir den Controller ab, der zu unserer Hauptanwendung gehört. Diese Java-Klasse nennen wir MainController.java . JavaFX funktioniert nach dem Programmierparadigma MVC, mehr dazu können Sie zum Beispiel in Wikipedia nachlesen. Wir öffn