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

Photoshop: automatisierte Nummerierung mit kleinem AppleScript

Vor Kurzem sollte ich 800 durch nummerierte Gutscheine in Photoshop erstellen. Dafür habe ich folgendes AppleScript eingesetzt. Die PSD Datei muss geöffnet sein, und die Textebene mit den Nummern muss markiert sein, bevor das Script gestartet wird.

Im Script muss der Pfad unter dem die Dateien gespeichert werden sollen, und der gewünschte Dateiname angegeben werden.


tell application "Adobe Photoshop CS5"
activate
set counter to 0
-- HIER WIRD DIE ANZAHL DER DURCHLÄUFE/ANZAHL DER GUTSCHEINE ANGEGEBEN
repeat 800 times
set counter to counter + 1
set docRef to current document
set artLayerRef to current layer in docRef
set textItemRef to text object of artLayerRef
set contents of contents of textItemRef to counter
-- HIER WIRD PFAD ZUM ORDNER IN DEM DIE GUTSCHEINE ABGESPEICHERT WERDEN ANGEGEBEN
set myPath to "/Macintosh HD/Users/hansdampf/Desktop/Nummern/"
-- HIER WIRD DER DATEINAME ANGEGEBEN
set myFileName to "Gutschein-" & counter & ".jpg"
set myTempFileName to myPath & myFileName
save docRef in file myTempFileName as JPEG with options {class:JPEG save options, quality:5, format options:optimized} with copying
end repeat
end tell