Skip to content

Instantly share code, notes, and snippets.

Out sick

Christopher Dosin ChristopherDosin

Out sick
Block or report user

Report or block ChristopherDosin

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile

Contao Hello World Bundle Tutorial

Möchte man eine Contao Erweiterung in mehreren Projekten einsetzen und/oder der Allgemeinheit zur Verfügung stellen, legt man dazu am besten ein Bundle an und veröffentlicht es auf Packagist. Dann lässt sich die Erweiterung einfach über Composer oder den Contao Manager installieren. Dieses Tutorial beschreibt wie das unter Verwendung des Skeleton Bundles funktioniert. Dabei wird ein Bundle erstellt, das ein Inhaltselement erzeugt, das "Hello World" ausgibt. Folgendes werden wir machen.

  1. Einen Vendor- und Bundle-Namen wählen
  2. Das Skeleton Bundle verstehen und anpassen
  3. Ein Repository für das Bundle anlegen
  4. Das Bundle in der Entwicklungsinstallation installieren
  5. Die grundlegende Funktionalität implementieren
  6. Unit Tests schreiben

Contao 4 Lokales Bundle

Mit der folgenden Anleitung wird ein lokales Contao 4 Bundle angelegt, das ein Inhaltselement mit der Ausgabe "Hello World" erzeugt.

Das Bundle wird nicht über Composer installiert, sondern einfach in die Anwendung gelegt. Es wird nicht das AppBundle verwendet, sondern ein eigener Vendor und Bundle Name.

Der Vendor Name für das Beispiel ist "Acme" der Bundle Name "TestBundle". Diese Strings müssen bei einem eigenen Bundle entsprechend ersetzt werden.

Bundle Erstellung

View promise-take-at-least.js
// Creates a new promise that automatically resolves after some timeout:
Promise.delay = function (time) {
return new Promise((resolve, reject) => {
setTimeout(resolve, time)
// Throttle this promise to resolve no faster than the specified time:
Promise.prototype.takeAtLeast = function (time) {
return new Promise((resolve, reject) => {
slider23 /
Last active Sep 25, 2019
VPS install bash script for Ubuntu 16.04
# =================== YOUR DATA ========================
shyim / Manager.php
Created May 8, 2016
PHP - WebPush Manager
View Manager.php
namespace GSS\Component\Push;
use Symfony\Component\DependencyInjection\Container;
class Manager
const GCM_URL = '';
const MOZ_URL = '';
private $db;
amityweb / csv_to_xml.php
Last active Nov 20, 2018
CSV to XML using PHP
View csv_to_xml.php
// Map CSV file to array
$rows = array_map('str_getcsv', file('data.csv'));
$header = array_shift($rows);
$data = array();
foreach ($rows as $row)
$data[] = array_combine($header, $row);
View lumen_ide_helper.php
* A helper file for Laravel 5, to provide autocomplete information to your IDE
* Generated for Laravel Lumen (5.1.1) (Laravel Components 5.1.*) on 2015-08-18.
* @author Barry vd. Heuvel <>
* @see
namespace {
brandonferens / margin-padding.less
Last active Jul 30, 2019
LESS Dynamic Margin and Padding Classes
View margin-padding.less
// This set of mixins allows you to create margin and padding classes dynamically.
// In html, you would specify <div class="mr20-xs">Content</div> to give you margin-right: 20px
// It is based on the responsive capabilities of Bootstrap. <div class="mr20-sm"> would give you
// 20 pixels of right margin on screens small and larger.
// Mixin control
// .make-margins(@breakpoint, @size, @decrement)
// @breakpoint: To be used with Bootstrap. Must supply breakpoints: xs, sm, md or lg
tronsha /
Last active Mar 19, 2019
Install PHP7 to Ubuntu
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
apt-get update
apt-get install -y git-core autoconf bison libxml2-dev libbz2-dev libmcrypt-dev libcurl4-openssl-dev libltdl-dev libpng-dev libpspell-dev libreadline-dev make
mkdir -p /etc/php7/conf.d
mkdir -p /etc/php7/cli/conf.d
mkdir /usr/local/php7
Penderis / Laravel Ajax.js
Last active Aug 29, 2015
Laravel ajax that works
View Laravel Ajax.js
jQuery( document ).ready( function( $ ) {
$( '#form-add-setting' ).on( 'submit', function() {
//show some spinner etc to indicate operation in progress
$( this ).prop( 'action' ),
You can’t perform that action at this time.