Wer kennt das nicht, die Website oder das neue Tool will einfach nicht fertig werden, obwohl man schon Stunden daran arbeitet. Die Augen sind völlig überstrapaziert vom zu langen „auf den Bildschirm starren“ und sowohl Rücken als auch Nacken haben definitiv schon bessere Zeiten erlebt. Besonders die Bürotäter unter uns, wissen bestimmt wovon ich spreche.
Dieser Button hat ein eigenes Image über Bootstrap mittels der Klasse icon-download und wird in einem neuen Tab geöffnet.
array( 'class' => 'zii.widgets.grid.CButtonColumn', 'template'=>'{pdf}', 'buttons'=>array( 'pdf' => array( 'url' => 'Yii::app()->createUrl("/con/action",array("id"=>$data->id))', 'options' => array('target' => '_blank', 'class' => 'icon-download'), 'label' => '', 'imageUrl' => false, ),
Yii2 OpenStreetMap Extension
Ich habe iene einfache OpenStreetMap Extension für Yii2 entwickelt, mit der man beliebige Punkte mit einem Tooltip anzeigen kann. Als Karten-Provider wird OpenLayers verwendet.
Insallationsanweisungen:
- Kopieren des Archiv Inhalts nach /widgets/OpenLayers
- einbinder der Extension in einer beliebigen view:
<?php /* @var $this yii\web\View */ use app\widgets\OpenLayers\OpenLayers; use yii\helpers\BaseVarDumper; use yii\helpers\Html; ?> <div> <div> <h1>Multiple Dots</h1> <h2>Input</h2> <?php $cities = [ ["name" => "Belize City", "lng" => -88.1975600, "lat" => 17.4995200, "link" => Html::a("link", "http://www.routenplaner24.de/n/stadtplan/belize+city-3582677"), "population" => "3"], ["name" => "San Ignacio", "lng" => -89.0796400, "lat" => 17.1576000, "link" => Html::a("link", "http://www.routenplaner24.de/n/stadtplan/san+ignacio-3581194"), "population" => "5"], ["name" => "Orange Walk", "lng" => -88.5632800, "lat" => 18.0812400, "link" => Html::a("link", "http://www.routenplaner24.de/n/stadtplan/orange+walk-3581514"), "population" => "6"], ]; BaseVarDumper::dump($cities, 10, true); ?> <h2>Map</h2> <?php echo OpenLayers::widget(['cities' => $cities, 'map_id' => 'multiple']) ?> </div> </div>
und fertig…
Manchmal kann es von Nutzen sein, wenn man vor allen anderen eine Wohnung oder Immobilie auf immobilienscout24.de oder auf anderen Webseiten zu Gesicht bekommt.
Ich habe für einen Immobilienmakler ein solches Tool erstellt, welches alle neuen Gewerbeimmobilien oder Wohnungen in bestimmten Städten in Deutschland alle 15Minuten per Mail in übersichtlicher Form an den Kunden verschickt. Es werden zusätzlich ein Quadratmeterpreis und die genaue Adresse sowie ein Link zu dem Angebot versendet:
Eigentumswohnungen Berlin 1) Title: Neubau-Wohnung am Wasser Adresse: Friedrichshain (Friedrichshain), Berlin 3500.00€/m² 100m² 350.0000€ Link zum Expose auf immobilienscout24 2) ....
Es ist möglich das Programm um neue Internetplattformen sowie alle denkbaren weiteren Funktionen zu erweitern. Bei Interesse können Sie mich gerne kontaktieren.
Das September 2014 erschienene Buch „Yii Project Blueprints“ aus dem Packt Publishing Verlag stammt aus einer Reihge guter englischsprachiger Bücher über das PHP-Framework Yii. Am Anfang war ich sehr skeptisch, ob ich das 43te HowTo über die Erstellung eines CMS oder PM-Ticket Tools in meinen Händen halten würde, aber ich wurde sehr positiv überrascht: Dieses Buch richtet sich an gestandene Yii-Programmierer, die in die Tiefen des Frameworks eintauchen wollen.
Die ersten zwei Kapitel sind eher für den Einstieg gedacht, aber danach lernt man erstaunlich interessante Kniffe mit dem Framwork kennen. Ein paar Beispiele:
- Einbindung von Composer
- viele sicherheitsrelevante Tipps: Erzeugung von wirklichen Zufallszahlen, Markdown-Parser etc.
- Cronjobs mit Yiic
- Fokus auf Wiederverwendbarkeit und Unabhängigkeit der Komponenten, z.B. wird genau erklärt, wie man Module benutzt und wie man diese am besten wiederverwendet
- Flash Messages
- die Verwendung eines E-Mail -Sende und -Empfang Dienstes am Bsp. von SendGrid
- Authentifizierung von Usern mit HybridAuth: Google+, Twitter, Facebook etc. Accounts
- SEO: Slug-Urls und Sitemap/RSS Feeds Implementierung
- Implementierung einer RESTful API
Der einzige Wermutstropfen sind die raren Screenshots, die sehr zum Verständnis der öfter sehr langen Code-Beispiele hätten beitragen können.
Animationen erstellen mit Javascript
Kleine Animation, wie das verschwinden eines div-Blockes, kann man in Javascript sehr einfach mit der Funktion setTimeout() erstellen.
Die Logik ist dabei immer dieselbe:
Für jeden Bewegungsframe wird mittels der setTimeout-Funktion zu einem bestimmten Zeitpunkt die Größe oder Posiition des Objektes verändert, so dass am Ende aneinandergereiht eine Animation herauskommt für das menschliche Auge.
Bsp:
[inline]
[script type=“text/javascript“]//
[/script]
[/inline]
Ich habe versucht noch freie dreistellige .de Domains zu finden und mir ein eigenes Script dafür geschrieben.
Das Script führt mittels Curl einen HEAD-Request auf die Domain aus und liest den Status Code aus. Das Ergebnis ist nciht zuverlässig, aber man kann eine Menge Domains so ausschließen.
Das Ergebnis vorneweg: Es gibt keine freien 3stelligen Domains mehr:) Vielelicht gibt es noch welche mit ä,ö,ü, das habe ich nicht getestet.
Aber es gibt noch jede Menge 4stellige .de Domains! Mit einer kleinen Modifikation lassen sich diese auch mit dem Script finden:
<?php error_reporting(E_ALL); ini_set("display_errors", 1); ini_set('max_execution_time', 60*60*3); foreach (range('a', 'z') as $letter1) { foreach (range('a', 'z') as $letter2) { foreach (range('a', 'z') as $letter3) { $domain = $letter1.$letter2.$letter3 ; $url = "http://".$domain.".de"; $link = '<a href="'.$url.'" target="_blank">'.$url.'</a>'; $status = get_link_status($url); if($status == "0"){ echo "Found: ".url." <br>"; } } } } function get_link_status($url, $timeout = 10) { $ch = curl_init(); // set cURL options $opts = array(CURLOPT_RETURNTRANSFER => true, // do not output to browser CURLOPT_URL => $url, // set URL CURLOPT_NOBODY => true, // do a HEAD request only CURLOPT_TIMEOUT => $timeout); // set timeout curl_setopt_array($ch, $opts); curl_exec($ch); // do it! $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // find HTTP status curl_close($ch); // close handle return $status; //or return $status; }
Bei der Theme-Entwicklung ist es sehr praktisch Testdaten zu haben, wie mehrer Posts, die in bestimmten Formate und Sonderinhalten, wie z.B. Videos daher kommen.
Es gibt zwei Möglichkeiten Testdaten in das System zu importieren:
1. Den Import eines festgelegten Datensätzen mittels des Importer Plugin, z.B.
https://wpcom-themes.svn.automattic.com/demo/theme-unit-test-data.xml
oder
2. über ein Plugin zur Erzeugung von einer konfigurierbaren Menge von Post, Usern und Kommentaren, bpsw.: Demo Data Creator
Google hat das sehr interessantes Open Source Projekt Tesseract übernommen, mit dem man relativ einfach Text von Bildern extrahieren kann.
Tesseract ist lauffähig unter verschiedensten Betriebssystemen und es gibt für das alle Programmiersprachen Wrapper zum Ausführen der Software.
Die Installation von Tesseract unter Linux
Die Installation in z.B. Debain und Ubuntu gestalltet sich mit Hilfe des Packetmanagers sehr einfach und komfortabel (im Beispiel für die deutsche Sprache):
sudo apt-get install tesseract-ocr tesseract-ocr-deu
Aber auch bspw. unter Windows und Mac gibt es ein Installationsprogramm.
Für die Verarbeitung mit PHP kann man eine der zahlreichen Wrapper benutzen, bspw
Imagick für PHP
Shopware 4 Installation Ubuntu mit Ant
Für die Installation von Shopware 4 unter Ubuntu ist auf der Konsole nur folgende Anweisung nötig, um mittels Ant und Git Shopware zu installieren und zu konfigurieren mittels eines Ant Build Sciptes.
Wichtig: Systemvoraussetzungen checken,
- PHP 5.3.2 or above
- PHP’s
cURL
andGD
library - An Apache web server
- Apache’s
mod_rewrite
module - MySQL 5.1.0 or above
sudo apt-get install git sudo apt-get -u install ant sudo apt-get install openjdk-6-jdk sudo apt-get install curl