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.
Category: Typo3
Extbase Plain SQL Abfrage
$sql = "SELECT * FROM table WHERE hidden=0 AND deleted=0";
$query->statement($sql);
// set true for array
return $query->execute(true);
Mit Extbase Pages Media Resources auslesen
Im Controller oder Repository:
public function findFileFromPageMedia( $pid ){
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
$fileRepository = $objectManager->get('TYPO3\CMS\Core\Resource\FileRepository');
$fileObjects = $fileRepository->findByRelation('pages', 'media', $pid);
// gibt Image Object Information
$files = array();
foreach ($fileObjects as $key => $value) {
$files[$key]['reference'] = $value->getReferenceProperties();
$files[$key]['original'] = $value->getOriginalFile()->getProperties();
}
return $files;
}
Fluid Template:
<f :image src="{result.image.0.reference.uid}" alt="" width="70c" height="70c" treatIdAsReference="1" />
Mit Extbase die Tabelle Pages erweitern
extTables.sql
#
# Modifying pages table
#
CREATE TABLE pages (
check_in_out varchar(255) DEFAULT '' NOT NULL,
price varchar(255) DEFAULT '' NOT NULL,
persons int(11) unsigned DEFAULT '0' NOT NULL,
disabled_access tinyint(4) unsigned DEFAULT '0' NOT NULL,
children tinyint(4) unsigned DEFAULT '0' NOT NULL,
use_as_room tinyint(4) unsigned DEFAULT '0' NOT NULL,
dinner tinyint(4) unsigned DEFAULT '0' NOT NULL,
breakfast tinyint(4) unsigned DEFAULT '0' NOT NULL,
);
Configuration/TCA/Overrides/pages.php
< ?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
// Configure new fields:
$fields = array(
'check_in_out' => array(
'label' => 'Buchungen',
'exclude' => 1,
'config' => array(
'type' => 'inline',
'foreign_table' => 'tx_accomodation_domain_model_dates',
'maxitems' => 999,
'appearance' => array(
'collapseAll' => 1,
'expandSingle' => 1,
),
),
),
'price' => array(
'exclude' => 1,
'label' => 'Preis',
'config' => array(
'type' => 'input',
'default' => 0,
'eval' => 'double2'
)
),
'persons' => array(
'exclude' => 1,
'label' => 'Anzahl Personen',
'config' => array(
'type' => 'input',
'default' => 0
)
),
'children' => array(
'exclude' => 1,
'label' => 'Kinder',
'config' => array(
'type' => 'check',
'default' => 0
)
),
'disabled_access' => array(
'exclude' => 1,
'label' => 'Behindertengerecht',
'config' => array(
'type' => 'check',
'default' => 0
)
),
'use_as_room' => array(
'exclude' => 1,
'label' => 'Seite als Zimmer verwenden?',
'config' => array(
'type' => 'check',
'default' => 0
)
),
'breakfast' => array(
'exclude' => 1,
'label' => 'Frühstück',
'config' => array(
'type' => 'check',
'default' => 0
)
),
'dinner' => array(
'exclude' => 1,
'label' => 'Abendbrot',
'config' => array(
'type' => 'check',
'default' => 0
)
),
);
// Add new fields to pages:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages', $fields);
// Make fields visible in the TCEforms:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
'pages', // Table name
'--div--;Buchungskalender;accomodation', // Field list to add
'', // List of specific types to add the field list to. (If empty, all type entries are affected)
'' // Insert fields before (default) or after one, or replace a field
);
// Add the new palette:
$GLOBALS['TCA']['pages']['palettes']['accomodation'] = array(
'showitem' => 'use_as_room,--linebreak--,check_in_out,--linebreak--,price,persons,--linebreak--,disabled_access,children,dinner,breakfast,'
);
TYPO3 B2B Webshop
Seit ein paar Tagen ist die Website http://pixandlux.ch/ online. Der Webshop wurde von mir in TYPO3 mit Extbase und Fluid umgesetzt. Dabei gab es so einige Probleme, über deren Lösung ich den kommenden Wochen noch detailiert berichten werde. Folgende Themen werde ich dabei behandeln:
- PDF generieren mit FPDF mit Extbase & Fluid
- Fluid Template basierte HTML Mails senden
- Extbase Backend Plugin für CSV Import
- Darstellungsprobleme in Outlook mit Direct Mail HTML Newslettern
- responsive HTML Newsletter
- fe_users Tabelle mit Extbase Plugin um eigene Felder erweitern
- sr_feuser_register um eigene Felder erweitern und validieren
TYPO3 B2B Webshop
Seit ein paar Tagen ist die Website http://pixandlux.ch/ online. Der Webshop wurde von mir als TYPO3 mit Extbase und Fluid umgesetzt. Dabei gab es so einige Probleme, �ber deren L�sung ich den kommenden Posts noch detailiert berichten werde. Folgende Themen werde ich dabei erl�uteren:
- FPDF in Extbase
- Fluid Template basierte HTML Mails senden
- Extbase Backend Plugin f�r CSV Import
- Darstellungsprobleme in Outlook mit Direct Mail HTML Newslettern
- fe_users Tabelle mit Extbase Plugin um eigene Felder erweitern
- sr_feuser_register um eigene Felder erweitern und validieren
Fullscreen Video Slideshow with BigVideo.js
Autohaus TYPO3 Extension für mobile.de – Schnittstelle
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
UPDATE – 17.02.2017
Neue Version der mobile.de API – TYPO3 Extension
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Derzeit arbeite ich an einer TYPO3 Extension für ein Autohaus, mit der man Fahrzeuge von www.mobile.de in eine TYPO3 Webseite einbinden kann. Die API von www.mobile.de liefert alle Daten im XML Fomat aus und wird von der Extension via Ajax abgerufen.
Leider bietet die API keine Möglichkeit, um nur tatsächlich verfügbare Marken und Modelle abzufragen. Statt dessen wird nur eine XML Datei mit allen Marken/Modellen angeboten. Würde man diese Datei auslesen und daraus eine Selectbox für die Marken generieren, so hätte man sehr viele unnütze Einträge, da diese Marken vom Autohaus gar nicht angeboten werden. Dadurch würde sehr viele Abfrage leere Ergebnisse liefern, was sehr unbefriedigend für den Besucher der Webseite sein dürfte.
Um dies zu vermeiden habe ich eine Funktion geschrieben, welche einmal täglich alle verfügbaren Fahrzeuge abruft. Das dauert einige Zeit, und kann so nicht bei jedem neuen Besucher der Seite durchgeführt werden. Daher schreibe ich das Ergebnis der Abfrage einfach in eine Textdatei und speichere diese auf dem Server. Aus dieser Datei generiere ich dann die Selectboxen für die Marken und deren dazugehörigen Modelle.
Das Ganze ist selbsverständlich auch durch Ggoogle und andere Suchmaschinen indizierbar!
Sollten Sie Interesse an der Extension haben, kann ich Ihnen gerne alle Informationen auf Anfrage zusenden. Schreiben Sie mir einfach eine kurze Email.
Ist Ihre Webseite nicht mit TYPO3 umgesetzt, so ist das auch kein Problem. Die Extension kann auch in jedes andere CMS und auch in einfachen PHP Webseiten eingesetzt werden!