Motivation Currently we have several discussions about data security and that the major hosting providers offering real cloud experience are simply sitting in the US. Due to several projects I’m involved in I wanted to checkout modern hosting providers, fully complaining with the German Data Protection law (no EU rules, easy german rules) also providing advanced functionality like docker hosting, easy up and down scaling etc. So i found linevast.
Motivation In one of our customers environments it was very common that the grafics department used a well defined directory structure including sync with nextcloud to allow access from outside of the company network. During the TYPO3 setup we recognized that our customers editors always did the following steps: Open Windows explorer Use preview functionality / view select a file, note or remember the file open TYPO3 File > Filelist Module Rebuild folder structure if the folders have been missing, to match the structure of the fileserver Upload image Edit content element As you might see, we also recognized really fast that the first part of the process should be simplified.
For some very simple projects we wanted ensure, that we can use git as we do it in nearly every project. Prerequisites: Project managed with Git Gitlab CE / EE Requirements: Branch based deployment Master branch should be published for production Other branches should be deployed as well, but in other folder like builds/{branch} Website users should not see the subfolders if they visit the website Basicly we manage our projects like in git flow, but any branch based way of using git should be sufficient.
I’ve started to migrate my webdav extension to the CMS 6.x branch and i’d like to get some feedback. What it does: provide webdav access to your TYPO3 CMS installation also piping FAL storages (local and remote as API is used) If you never heard about FAL it the short form of „file abstraction layer“ this is used to provide access to files stored in any type of storage, can be locally, ftp, dropbod, webdav, whatever.
Today i just publish a short Post.
Have a look into these PHPStorm Plugins – they are great 😀
Sicher werdet ihr jetzt denken, „wow noch ein Werbetext von 1und1“, leider muss ich da enttäuschen. Ich will in den folgenden Zeilen, nach einem DSL Ausfall bei mir, analysieren, was besser laufen könnte, und das ganze bei minimalem Mitteleinsatz. Hardware Im Gegensatz zu den meisten großen Providern liefert 1und1 AVM Produkte als Router aus, diese werden unter dem Namen „1und1 Homeserver“ (7390) oder „1und1 Homeserver+“ (7490) versendent. Zu diesen Geräten gibt es je nach Anschluss mit der Sofortstart Option noch einen UMTS Stick (XS Stick P14v) dazu.
If you ever wondered how to tell Jenkins to send you Jabber messages to Google Talk here is how:
Perhaps you needed to upgrade PHP on your Servers too. I needed to do this, because i wanted to use tine20.org with my local thunderbird. I thought nothing easier than that and contacted my server maintainer, the guys @hosteurope.de did a great job and upgraded php very fast – thanks guys. After some time i found out knowledgetree is out of order and the odysee began. After digging into the code and having used google heavily i found a solution:
Mittlerweile wurde eine frühe Version des Skins auf WordPress.org für das theme directory eingereicht.
In der aktuellen Fassung wurde nun das ersetzen der jeweiligen Bereich noch vereinfacht.
Wir haben drei kleine Schritte:
$helper = new GrabIt_Xml_Helper($options['layoutUri']); $helper->enableDefaultPostProcessingForWP();
$helper->setPlaceHolder( 'contentBlock-1', GrabIt_Util_Functions::renderSiteContent('page') ); $helper->setPlaceHolder( 'contentBlock-2', GrabIt_Util_Functions::renderSiteContent('sidebar1') ); $helper->setPlaceHolder( 'contentBlock-3', GrabIt_Util_Functions::renderSiteContent('sidebar2') );
echo $helper->parseDocument();
Wie versprochen kommen nun noch einige Details zum „Grabben“ des Themes. <?php class GrabIt_Xml_Helper { protected $prePlaceHolders = array( ‘contentBlock-1’ => ‘##CONTENT-1###’, ‘contentBlock-2’ => ‘##CONTENT-2###’, ‘contentBlock-3’ => ‘##CONTENT-3###’, ‘feature’ => ‘##FEATURE###’, ); protected $postPlaceHolders = array( ‘##CONTENT-1###’ => ‘content-1’, ‘##CONTENT-2###’ => ‘content-2’, ‘##CONTENT-3###’ => ‘content-3’, ‘##FEATURE###’ => ‘feature’, ‘##FOOTER###’ => ‘footer’, ‘##MENU###’ => ‘menu’, ); protected $debug = false; function __construct($url) { $this->setUrl($url); } function setUrl($url) { $this->url = $url; } function setPrePlaceHolders($array) { $this->prePlaceHolders = $array; } function setPrePlaceHolder($name, $value) { $this->prePlaceHolders[$name] = $value; } function setPostPlaceHolder($name, $value) { $this->postPlaceHolders[$name] = $value; } function parseDocument() { if(!