blog.exotec

TYPO3 . XHTML/CSS . JavaScript/AJAX . iPhone/iOS

Die mobile.de API für TYPO3 9.5 ist verfügbar

Kategorie PHP, Typo3, Intern - 24. Februar 2019

In dieser Version wurde ordentlich abgespeckt. Und das alte RealURL Handling ist durch das neue URL Routing ersetzt worden.

Zum Demo

Mail aus Terminal versenden

Kategorie Mac, Linux - 24. Februar 2019

echo "Lorem ipsum dolor sit amet, consetetur sadipscing" | mail -s "Deine Testmail von der Konsole" emfaenger@example.com

phpMyAdmin in Docker Container

Kategorie Typo3 - 23. Februar 2019

Um das Image phpmyadmin/phpmyadmin für einen (oder mehrere) anderen Container zu nutzen, habe ich mir folgende docker-compose.yml angelegt:

version: '3'
services:
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    environment:
      - PMA_ARBITRARY=1
    restart: always
    ports:
      - 8080:80
    volumes:
      - /sessions
    external_links:
      - ###CUSTOM_CONTAINER_1###
      - ###CUSTOM_CONTAINER_2###
    networks:
      - custom_network_1
      - custom_network_2
networks:
  custom_network_1:
    external:
      name: ###CUSTOM_CONTAINER_1_NETWORK###
  custom_network_2:
    external:
      name: ###CUSTOM_CONTAINER_2_NETWORK###

Einfache TYPO3 Entwicklung mit Docker

Kategorie Docker, Mac, PHP, Linux, Typo3 - 23. Februar 2019

Docker

Als ich vor ein paar Tagen meine erste Entwicklungsumgebung, mit Docker für TYPO3 anlegen wollte, bekam ich zunächst Probleme bei der Installation von Docker for Mac. Meine CPU ist zu alt und wird von der aktuellen Docker Version für Mac nicht unterstützt. Recht schnell fand ich Docker Desktop, welches scheinbar speziell für ältere Rechner zur Verfügung gestellt wird. Cool, Docker läuft.

Für TYPO3 fand ich das Image martinhelmich/typo3. Martin beschreibt sehr gut in seinem Blog wie man damit umgeht. Was er leider nicht verrät, ist wie man damit Dateien auf dem Host bearbeiten kann. In den Kommentaren findet sich zwar ein Ansatz:

$ docker run -d --name typo3-web --link typo3-db:db 
    --volume /pfad/zum/projekt/typo3conf:/var/www/typo3conf 
    --volume /pfad/zum/projekt/fileadmin:/var/www/fileadmin 
    --volume /pfad/zum/projekt/uploads:/var/www/uploads

Und damit werden die Host Verzeichnisse auch in den Container eingebunden, aber die Rechte der Verzeichnisse passen nicht, da die Rechte des Hosts übernommen werden. Sehr ärgerlich, denn mit einem readonly /typo3conf kann man nicht viel mit TYPO3 anfangen.

Aber man muss ja auch gar nicht das komplette /typo3conf mounten. Mir genügt es wenn ich meine Extension Verzeichnisse auf dem Host anlegen kann und sie einzeln in das Container /typo3conf Verzeichnis mounte.

$ docker run -d --name typo3-web --link typo3-db:db 
    --volume /pfad/zum/projekt/typo3conf/my_new_extension:/var/www/typo3conf my_new_extension

Container Daten auf den Host kopieren:

docker cp ###deine_container_id###:/var/www/html/fileadmin/introduction/ /pfad/zum/projekt/

Damit ich nun nicht immer meine Container einzeln starten muss, habe ich mir diese docker-compose.yml angelegt.

version: "2"
services:
  mysql:
    image: ${DB_IMAGE}
    container_name: ${APP_NAME}_database
    command:
      - --character-set-server=utf8
      - --collation-server=utf8_unicode_ci
    environment:
      - "MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}"
      - "MYSQL_DATABASE=${DB_NAME}"
      - "MYSQL_USER=${DB_USER}"
      - "MYSQL_PASSWORD=${DB_PASSWORD}"
    volumes:
      - database:/var/lib/mysql
  extensions:
    image: busybox
    container_name: ${APP_NAME}_extensions
    volumes:
      - ./Extensions/lgv_site_package:/var/www/html/typo3conf/ext/lgv_site_package
  typo3:
    image: martinhelmich/typo3:${TYPO3_VERSION}
    container_name: ${APP_NAME}_typo3_${TYPO3_VERSION}
    ports:
      - ${APP_PORT}:80
    volumes:
      - fileadmin:/var/www/html/fileadmin
      - typo3conf:/var/www/html/typo3conf
      - uploads:/var/www/html/uploads
    volumes_from:
      - extensions
    links:
      - mysql:db
volumes:
  database:
  fileadmin:
  typo3conf:
  uploads:
APP_NAME=T3_Docker
APP_PORT=80
TYPO3_VERSION=latest
DB_IMAGE=mysql:5.7
DB_ROOT_PASSWORD=root
DB_NAME=typo3
DB_USER=typo3
DB_PASSWORD=typo3

Wie anfangs erwähnt ist mein MAC schon etwas älter. Bislang habe ich meine lokale Entwicklung mit MAMP umgesetzt. Aktuell stand ich aber vor einem Problem. TYPO V9 benötigt PHP 7.2. Aber PHP 7.2 ist mit meinem auch etwas älterem MAMP nicht verfügbar. Dank Docker ist das alles nun kein Problem mehr.

sys_file_reference mit Datahandler erzeugen

Kategorie Extbase Tips, PHP, Typo3 - 16. Februar 2019

Wer mit Extbase zB. einen Datei-Upload im Frontend umsetzen will, merkt schnell wie tricky das sein kann. Meist landet man früher oder später bei Helmut Hummel’s Upload Example (https://github.com/helhum/upload_example). Ich habe aber trotzdem einige Zeit benötigt um es zum Laufen zu bringen.

Dmitry Dulepov hat mir vor 2 Tagen gezeigt, wie man das sehr viel einfacher umsetzen kann:
https://stackoverflow.com/questions/54695460/problems-with-…

protected function createFileReference($contentUid, $pid, $fieldName, File $file)
{
$data = [
'sys_file_reference' => [
StringUtility::getUniqueId('NEW') => [
'table_local' => 'sys_file',
'uid_local' => $file->getProperty('uid'),
'tablenames' => 'tt_content',
'uid_foreign' => $contentUid,
'fieldname' => $fieldName,
'pid' => $pid,
]
]
];
$dataHandler = GeneralUtility::makeInstance(DataHandler::class);
$dataHandler->start($data, []);
$dataHandler->admin = true;
$dataHandler->process_datamap();
}

Flatpickr Date Range Picker

Kategorie Typo3 - 24. Juli 2018

Neue Version der mobile.de API - TYPO3 Extension

Kategorie Typo3, Intern - 17. Februar 2017

Die neue Version speichert nun die Daten in der TYPO Datenbank. Der Import der Daten kann im TYPO3 Scheduler (manuell oder cron) angestoßen werden.

Demo ansehen

Extbase Plain SQL Abfrage

Kategorie Typo3 - 5. November 2016

$sql = "SELECT * FROM table WHERE hidden=0 AND deleted=0";
$query->statement($sql);
// set true for array
return $query->execute(true);

Nächste Seite »

96,932 Spam-Kommentare
blockiert von
Akismet