/** @var \TYPO3\CMS\Fluid\View\StandaloneView $fluidTemplate */
$fluidTemplate = GeneralUtility::makeInstance('TYPO3\CMS\Fluid\View\StandaloneView');
$fluidTemplate->setLayoutRootPaths(array(GeneralUtility::getFileAbsFileName('EXT:ext_contact_us/Resources/Private/Layouts/')));
$fluidTemplate->setPartialRootPaths(array(GeneralUtility::getFileAbsFileName('EXT:ext_contact_us/Resources/Private/Partials/')));
$fluidTemplate->setTemplatePathAndFilename(
ExtensionManagementUtility::extPath('ext_contact_us') . 'Resources/Private/Templates/ContactUs/Show.html'
);
echo $fluidTemplate->render();
Author Archive
Extbase standalone template
Extending Classes in TYPO3
As a TYPO3 extension developer you most certainly will experience situations where you want to extend existing classes, either from the TYPO3 core or from another extension. Fortunately, TYPO3 provides several ways to achieve just that:
Signals, Slots and Hooks
The preferred way of extending existing functionality should always be to use existing Signals and Hooks. Both provide a clearly defined extension interface to developers, which is why it’s pretty safe to use them.
android 4.x 无法启动
打包时app中超过了65536个方法,代码会编译不进一个dex包,所以需要用到multidex后,拆出两个dex包后能打包成功,但是4.x版本,app启动时只会load第一个dex包,不会自动去load第二个dex包,启动过程中如果用到第二个dex包中代码,就会直接报class not found。而5.x及以上版本会自动加载多个dex。
FIX:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
extbase Property Mappers
Der neue Property Mapper
Was ist die Aufgabe eines Property Mappers?
Ein Property Mapper hat die Aufgabe, die Daten, die von Formularen an den Webserver gesendet werden in die korrekten Variablentypen zu konvertieren. Alle Daten eines Formulars werden entweder mit Hilfe von POST oder GET (Url) an den Server übertragen, aber diese Transportmethoden können nur mit Arrays und Texten umgehen. Wenn Ihr also in Eurem Formular ein Feld für das Alter einer Person habt und absendet, dann ist für den Server dieses Alter grundsätzlich erstmal ein Text und keine Zahl. Vielleicht habt Ihr aber auch ein Formular auf Eurer Webseite, auf dem Ihr die Beläge Eurer Pizza zusammenstellen könnt (Auswahl per Checkbox). In diesem Fall werden die Daten als Array an der Server übertragen. Solange diese Transportmethoden nicht zwischen Text und Zahl oder auch Array und Objekten unterscheiden können, seid Ihr die Einzigen die wissen von welchem Typ diese Daten sind. Ein Property Mapper kann Euch bei dieser Aufgabe helfen.
(continue reading…)
extbase set storage
$querySettings = $this->productRepository->createQuery()->getQuerySettings();
$querySettings->setStoragePageIds(array(103));
$this->productRepository->setDefaultQuerySettings($querySettings);
Composer 小技巧
Composer 是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。
1. 仅更新单个库
只想更新某个特定的库,不想更新它的所有依赖,很简单:
composer update foo/bar
此外,这个技巧还可以用来解决“警告信息问题”。你一定见过这样的警告信息:
(continue reading…)
typo3后台禁止关联删除
TCA Config:
'behaviour' => array(
'enableCascadingDelete' => false
),
HowTo Install Redmine on Debian 8 with Apache2-Passenger
This HowTo describes installing redmine 3.0.1 on Debain 8 (April 15, few weeks before released as
stable) with Apache and MySQL.
Hint:
Run all commands as normal user. If root privileges required i used sudo (the ‘sudo’ package needs to be properly instaled and configured). (continue reading…)
Debian升级
Debian 6(Squeeze)升级至Debian 7(Wheezy) (7级8同理)
Debian GNU/Linux支持滚动更新,出于安全方面的考虑,当新版Debian发行后,我们一般会将现有版本的Debian升级至最新的稳定版的Debian。升级除了可以提升系统的安全性以外,同时还可以获得由更新版本的应用软件带来的新功能及其它好处。这就是我们为什么要将Debian 6(Squeeze)升级至Debian 7(Wheezy)的原因。
(continue reading…)