blattertech informatik Blog http://www.blattertech.ch Informationen und Snipplets zu CMS Made Simple, Typo3, PHP, MySQL, IT Support und weiteres Wed, 22 Feb 2012 19:30:36 +0100 BlatterTech Informatik CGFeedMaker 1.0.14 on CMS Made Simple Informationen und Snipplets zu CMS Made Simple, Typo3, PHP, MySQL, IT Support und weiteres http://www.blattertech.ch blattertech informatik Blog http://www.blattertech.ch/uploads/CGFeedMaker/blattertech.png CSS3: Breadcrumbs http://www.blattertech.ch/blog/62/CSS3-Breadcrumbs.htm http://www.blattertech.ch/blog/62/CSS3-Breadcrumbs.htm#comments Eine Breadcrumbs Navigation ist nützlich um dem Benutzer zu zeigen wo er in der hierarchischen Struktur einer Webseite befindet. Er kann über die Breadcrumbs Navigation zurück auf ein höheres Level wechseln.

Mit der CSS3 Breadcrumbs Navigation kann dies in ähnlichem Stil wie die Breadcrumbs Navigation von Apple ohne zusätzliche Grafikelemente umgesetzt werden.

CSS3 Breadcrumbs

Eine Demo sowie die Scripts dazu finden sich hier

]]>
Fri, 10 Feb 2012 06:26:00 +0100 http://www.blattertech.ch/blog/62/CSS3-Breadcrumbs.htm 0
CSS3: Silbentrennung “hyphens” http://www.blattertech.ch/blog/61/CSS3-Silbentrennung-hyphens.htm http://www.blattertech.ch/blog/61/CSS3-Silbentrennung-hyphens.htm#comments Bis anhin war die Silbentrennung mit HTML nicht möglich oder nur durch den Umweg eines JavaScripts. Mit der CSS Eigenschaft "hyphens" kann die Silbentrennung nun aktiviert werden.

body {
 -webkit-hyphens: auto;
 -moz-hyphens: auto;
 -ms-hyphens: auto;
 hyphens: auto;
}

Im Moment unterstützt noch kein Browser die Eigenschaft korrekt. Deshalb gibt es Vendor-Prefixes für Webkit, Microsoft und Mozilla.

Es spricht jedoch aus meiner Sicht nichts dagegen diese Eigenschaft bereits in allen Projekten einzusetzen. Derzeit unterstützt als einziger Opera diese Eigenschaft noch nicht. In Anbetracht seiner Marktverbreitung kann dies aus meiner Sicht vernachlässigt werden. Es ist zudem anzunehmen, dass auch Opera diese Eigenschaft über kurz oder lang unterstützen wird

]]>
Tue, 07 Feb 2012 20:38:00 +0100 http://www.blattertech.ch/blog/61/CSS3-Silbentrennung-hyphens.htm 0
Excel 2007/2010 - Feldnamen bearbeiten oder löschen http://www.blattertech.ch/blog/60/Excel-2007-2010---Feldnamen-bearbeiten-oder-loeschen.htm http://www.blattertech.ch/blog/60/Excel-2007-2010---Feldnamen-bearbeiten-oder-loeschen.htm#comments In Excel können auf sehr einfache weise Feldnamen vergeben werden. Wenn jedoch ein Feldname versehentlich vergeben wurde oder nicht mehr gebraucht wird, weiss man nicht wie löschen.

Hier die Anleitung dazu:

Excel Feldnamen

]]>
Tue, 07 Feb 2012 17:34:00 +0100 http://www.blattertech.ch/blog/60/Excel-2007-2010---Feldnamen-bearbeiten-oder-loeschen.htm 0
Canon PhotoPrintEx und CD Labelprint unter Win7 http://www.blattertech.ch/blog/59/Canon-PhotoPrintEx-und-CD-Labelprint-unter-Win7.htm http://www.blattertech.ch/blog/59/Canon-PhotoPrintEx-und-CD-Labelprint-unter-Win7.htm#comments Dieses Wochenende habe ich unseren Canon IP4500 wieder mal in Betrieb genommen. Mittlerweile gibt es bei uns ausschliesslich Win7 PCs. Nach dem Installieren von Canon PhotoPrint Ex kam die Meldung, dass kein passender Drucker installiert sei.

Dieses Problem kann wie folgt gelöst werden:

  1. Drucker automatisch durch Windows installieren lassen
  2. Die Datei b7100MUx.exe von Canon-Server herunterladen und installieren
  3. Die Datei aomwin200ea24.exe vom Canon-Server herunterladen und installieren.
  4. Danach PhotoPrintEx und / oder CD Labelprinter installieren

Bei mir funktionierte dies auch bei bereits installiertem PhotoPrint Ex.

(Quelle)

]]>
Mon, 06 Feb 2012 16:47:00 +0100 http://www.blattertech.ch/blog/59/Canon-PhotoPrintEx-und-CD-Labelprint-unter-Win7.htm 0
QNAP: proftpd re-launch http://www.blattertech.ch/blog/58/QNAP-proftpd-re-launch.htm http://www.blattertech.ch/blog/58/QNAP-proftpd-re-launch.htm#comments Diesen Sonntag hat mich ein minütliches Klingeln des Handys aus der trauten Ruhe geschreckt:

 Server Name: qnap1
 IP Address: 10.0.4.8
 Date/Time: 2012/02/05 20:49:06
 Level:  Warning
 Re-launch process [proftpd]

Diese Meldung kam im Minutenschritt reingedudelt. Ein Deaktivieren und Aktivieren des FTP Dienstes brachte keine abhilfe. Ein Hinweis im QNAP Forum brachte mich auf den richtigen Weg:

Es kann passieren, dass sich das SSL Zertifikat verhaspelt. In diesem Fall musste ich das SSL Zertifikat zurücksetzen. Danach funktionierte der FTP Dienst wieder zuverlässig. Für weiteres Debuggen kann man sich übrigens per SSH auf das QNAP NAS verbinden.

User: admin
Passwort: das welches man definiert hat

Danach kann man mit /usr/local/sbin/proftpd den ProFTPd selber starten und schauen mit welcher Fehlermeldung er abbricht. 

]]>
Mon, 06 Feb 2012 06:44:00 +0100 http://www.blattertech.ch/blog/58/QNAP-proftpd-re-launch.htm 0
Copyright Link im Footer mit Jahreszahl http://www.blattertech.ch/blog/57/Copyright-Link-im-Footer-mit-Jahreszahl.htm http://www.blattertech.ch/blog/57/Copyright-Link-im-Footer-mit-Jahreszahl.htm#comments Die meisten Webseiten enthalten einen Footer mit einem Copyright. Ist in diesem eine Jahreszahl enthalten, so sollte diese auch aktuell gehalten werden. Hier eine Lösung wie dies mit Smarty sehr einfach gelöst werden kann:

<p>&copy; copyright 2010 - {'Y'|date}, <a href="http://www.blattertech.ch">blattertech informatik</a>, alle Rechte vorbehalten.</p>
]]>
Tue, 10 Jan 2012 22:37:00 +0100 http://www.blattertech.ch/blog/57/Copyright-Link-im-Footer-mit-Jahreszahl.htm 0
Dinge auf die wir nicht achten http://www.blattertech.ch/blog/56/Dinge-auf-die-wir-nicht-achten.htm http://www.blattertech.ch/blog/56/Dinge-auf-die-wir-nicht-achten.htm#comments Auf was wir nicht achten, existiert nicht:

Ein ganz erstaunliches Video

via pharmama

]]>
Sun, 08 Jan 2012 21:29:00 +0100 http://www.blattertech.ch/blog/56/Dinge-auf-die-wir-nicht-achten.htm 0
CMSMS: Automatisch Seiten-Urls generieren http://www.blattertech.ch/blog/55/CMSMS-Automatisch-Seiten-Urls-generieren.htm http://www.blattertech.ch/blog/55/CMSMS-Automatisch-Seiten-Urls-generieren.htm#comments In CMS Made Simple gibt es die Möglichkeit einer Seite eine individuelle Seiten-URL zuzuweisen. Dies ist praktisch, da ein Alias eindeutig sein muss und somit eine Seite nur eine kontakt.htm aufweisen kann. Mittels der Seiten-URLs können so mehrere kontakt.html erstellt werden.

Hier ein Beispiel einer solchen Konfiguration:

Firma 1
- Über uns
- Referenzen
- Kontakt

Firma 2
- Über uns
- Referenzen
- Kontakt

Firma 3
- Über uns
- Referenzen
- Kontakt

Dies ergibt mit den Seiten-Alias normalerweise folgende Struktur:

domain.ch/firma1/kontakt.htm
domain.ch/firma2/kontakt-1.htm
domain.ch/firma3/kontakt-2.htm

Mittels eines UDT kann die URL Erstellung automatisiert werden. Man erstelle dazu den UDT (Benutzerdefinierter Tag) "ContentEditPost":

$gCms = cmsms();
$db        = cmsms()->GetDb();

$id        = $params['content']->Id();
$parentId  = $params['content']->ParentId();
$url       = $params['content']->URL();
$menutext  = $params['content']->MenuText();

// root Alias ermitteln
$contentops = $gCms->GetContentOperations();
$pageId = $id;
$rootAlias = '';

while( $pageId > 0 ) {
    $content = $contentops->LoadContentFromId($pageId);
    if( !is_object( $content ) ) {
         $rootAlias = '';
         break;
    }
    $rootAlias = $content->Alias();
    $pageId = $content->ParentId();
}

# get url from parent page
$query = "SELECT page_url FROM ". cms_db_prefix() . "content WHERE content_id = ? ";
$page_url = $db->GetOne($query, array($parentId));

if (!$url or strpos($url,$page_url) == false) {
    $urlalias = $menutext;
    $urlalias = mb_strtolower($urlalias, 'UTF-8');

    // Alle deutschen Umlaute und Sonderfälle austauschen
    $urlalias = str_replace(
        array('ä',    'ö',    'ü',    'ß',    ' - ',    ' + ',    '_',    ' / ',    '/',    'é',    'è',    'à',    'ç'),
        array('ae',    'oe',    'ue',    'ss',    '-',        '-',        '-',    '-',        '-',    'e',    'e',    'à',    'c'),
        $urlalias);

    // Alle restlichen Leerzeichen zu Bindestrichen
    $urlalias=preg_replace('/\s/s', '-', $urlalias);

    // Alles löschen, was nicht alphanumerisch ist
    $urlalias = preg_replace('/[^a-z0-9_-]/isU', '', $urlalias);

    $urlalias = trim($urlalias);

    $url = $page_url . "/". $urlalias;

    $query = "Update ". cms_db_prefix() . "content set page_url = '".$url."' WHERE content_id = ? ";
    $db->Execute($query,array($id));
}

 

Ereignisverwaltung

Ereignisverwaltung

Nun muss der UDT noch in die Ereignisverwaltung eingefügt werden:

 

 

Nun muss das Ereignis "ContentEditPost" gesucht werden. Mit klick auf den Namen kann man das Ereignis bearbeiten. Nun den UDT "ContentEditPost" hinzufügen.

UDT dem Ereignis zuweisen

UDT dem Ereignis zuweisen



 

]]>
Wed, 04 Jan 2012 12:15:00 +0100 http://www.blattertech.ch/blog/55/CMSMS-Automatisch-Seiten-Urls-generieren.htm 0
CMSMS: TinyMCE - Filepicker - Ordner öffnen sich nicht http://www.blattertech.ch/blog/54/CMSMS-TinyMCE---Filepicker---Ordner-oeffnen-sich-nicht.htm http://www.blattertech.ch/blog/54/CMSMS-TinyMCE---Filepicker---Ordner-oeffnen-sich-nicht.htm#comments Mit der Version 10.x und TinyMCE 2.9.4 hat sich ein kleiner Fehler eingeschlichen. Folgendes sind die folgen:

  • Ist TinyMCE mit dynamischer Konfigurationsdatei versehen, lassen sich im Filepicker keine Ordner mehr öffnen
  • Dateien können ohne Fehlermeldung nicht mehr hochgeladen werden

Stellt man nun die Konfiguration auf statische Konfiguration um, ergeben sich folgende Probleme:

  • TinyMCE wird teilweise nicht angezeigt. Man muss die Seite neu laden, damit der TinyMCE angezeigt wird
  • Beim Filepicker erscheinen unregelmässig Login-Screens statt der erwünschten Dateiliste

Folgender BugReport hat dazu eine Lösung:
http://dev.cmsmadesimple.org/bug/view/7145

Die URL zwischen statischer und dynamischer Konfiguration sind in einem kleinen Detail verschieden. Um das Problem der dynamischen Konfiguration zu lösen, muss folgende Datei bearbeitet werden:
./TinyMCE/template/tinyconfig.tpl Zeile 137:

var cmsURL = "{$filepickerurl|replace:',,':',m1_,'}&type="+type+"&showtemplate=false";

In der URL fehlt ein m1_ welches durch den Replace der $filepickerurl gesetzt wird.

]]>
Sat, 17 Dec 2011 08:03:00 +0100 http://www.blattertech.ch/blog/54/CMSMS-TinyMCE---Filepicker---Ordner-oeffnen-sich-nicht.htm 0
Array Keys mit implode zu einem String umwandeln http://www.blattertech.ch/blog/53/Array-Keys-mit-implode-zu-einem-String-umwandeln.htm http://www.blattertech.ch/blog/53/Array-Keys-mit-implode-zu-einem-String-umwandeln.htm#comments Gerade eben wieder mal Array Keys mit implode in einen String umwandlen müssen. Bevor ich die sehr einfache Lösung wieder vergesse und sie das nächste Mal suchen muss:

implode("|",array_keys($array));

Damit werden alle Keys des Arrays mit einem | Pipe getrennt in einen String geschrieben.

]]>
Tue, 29 Nov 2011 06:03:00 +0100 http://www.blattertech.ch/blog/53/Array-Keys-mit-implode-zu-einem-String-umwandeln.htm 0
Facebook, Google+ und Flattr Buttons mit AdBlock Plus blockieren http://www.blattertech.ch/blog/32/Facebook-Google-und-Flattr-Buttons-mit-AdBlock-Plus-blockieren.htm http://www.blattertech.ch/blog/32/Facebook-Google-und-Flattr-Buttons-mit-AdBlock-Plus-blockieren.htm#comments Facebook wie auch Google sammeln mit ihren Like Boxen Informationen von Internet Benutzern. So werden von jeder Seite auf der solche Buttons eingebaut sind, Daten an diese beiden Firmen geschickt. Mit AdBlock Plus im Firefox kann dies einfach unterbunden werden:

Facebook

facebook.com^$third-party
facebook.net^$domain=~facebook.com
fbcdn.com^$domain=~facebook.com
fbcdn.net^$domain=~facebook.com

Google+

https://apis.google.com/js/plusone.js

Flattr

api.flattr.com

Regel in AdBlock Plus definieren

AdBlock Plus Einstellungen

AdBlock Plus
Einstellungen

Voraussetzung ist natürlich die Installation von AdBlock Plus in Firefox. Um eigene Filterregeln hinzuzufügen müssen die Einstellungen von AdBlock Plus geöffnet werden. Dazu auf den AdBlock Plus Button klicken und dann auf Einstellungen klicken.

Danach auf "Filter hinzufügen" klicken und die Regel einfügen:

AdBlock Plus Filter hinzufügen

AdBlock Plus Filter hinzufügen

Nachtrag vom 23.11.2011 - T3N hat eine Anleitung veröffentlicht mit welcher man ein Filter-Abo für AdBlock Plus einrichten kann.

]]>
Wed, 23 Nov 2011 22:09:00 +0100 http://www.blattertech.ch/blog/32/Facebook-Google-und-Flattr-Buttons-mit-AdBlock-Plus-blockieren.htm 2
btAdminer 1.2.1 http://www.blattertech.ch/blog/52/btAdminer-1-2-1.htm http://www.blattertech.ch/blog/52/btAdminer-1-2-1.htm#comments Gestern Abend habe ich das Modul btAdminer welches Adminer für CMS Made Simple bereit stellt, auf die Version 1.2.1 aktualisiert.

Changelog:

  • Kompatibilität mit CMSMS 1.10.x  aktualisiert

Der btAdminer kann im Forge heruntergeladen werden.

]]>
Thu, 17 Nov 2011 06:03:00 +0100 http://www.blattertech.ch/blog/52/btAdminer-1-2-1.htm 0
Schadsoftware im Umlauf welche zu Zahlung auffordert http://www.blattertech.ch/blog/51/Schadsoftware-im-Umlauf-welche-zu-Zahlung-auffordert.htm http://www.blattertech.ch/blog/51/Schadsoftware-im-Umlauf-welche-zu-Zahlung-auffordert.htm#comments Schadsoftware (Bildquelle: Melani)

Derzeit ist eine Schadsoftware aktiv,welche mit einem Fenster erscheint, welches scheinbar vom Eigenössischen Justiz- und Polizeidepartement stammt. Der Computerbenutzer wird aufgefordert eine Busse von 150.- Franken zu bezahlen, da sich auf dem Computer kinderpornografisches illeales Material befinde.

Grundsätzlich: Der Bund wird NIE auf diese Art mit Ihnen Kontakt aufnehmen und eine Staftat durch eine einmalige Zahlung via PayPal oder ähnlichem Bezahlungsdienst diese aus der Welt schaffen.
Wie bei allen Schadsoftwaren in diesem Bereich ist der gesunde Menschenverstand einzusetzen, ob denn sowas überhaupt sein kann.

Melani hat dazu einen Bericht auf der Webseite veröffentlicht, sowie eine Anleitung zum entfernen dieser Schadsoftware veröffentlicht.

Wichtig: Ein mit Schadsoftware befallener Computer sollte in jedem Fall neu installiert werden.

]]>
Fri, 11 Nov 2011 06:31:00 +0100 http://www.blattertech.ch/blog/51/Schadsoftware-im-Umlauf-welche-zu-Zahlung-auffordert.htm 0
Smarty: Verschiedene Werte mit Assign kombinieren http://www.blattertech.ch/blog/50/Smarty-Verschiedene-Werte-mit-Assign-kombinieren.htm http://www.blattertech.ch/blog/50/Smarty-Verschiedene-Werte-mit-Assign-kombinieren.htm#comments Bevor ich's wieder vergesse, da ich es zu wenig brauche. Man kann in Smarty mit Assign Problemlos Variablen und weitere Werte kombinieren. Dazu ist das ` Zeichen notwendig:

{assign var="domain" value="http://`$smarty.server.SERVER_NAME`"}

Die Ausgabe von $domain ist somit: http://www.blattertech.ch

]]>
Sun, 06 Nov 2011 21:24:00 +0100 http://www.blattertech.ch/blog/50/Smarty-Verschiedene-Werte-mit-Assign-kombinieren.htm 0
Smarty: Ein String mit explode in ein Array umwandeln http://www.blattertech.ch/blog/49/Smarty-Ein-String-mit-explode-in-ein-Array-umwandeln.htm http://www.blattertech.ch/blog/49/Smarty-Ein-String-mit-explode-in-ein-Array-umwandeln.htm#comments Mit der PHP Funktion explode kann ein String mittels eines Trennzeichens in ein Array umgewandelt werden. Ein Beispiel:

$string = "Apfel,Birne,Feige,Pflaume";

In diesem String ist das Trennzeichen das Komma. Somit wird mit explode ein Array mit 4 Einträgen erstellt. In Smarty umgesetzt sieht dies so aus:

{assign var="string" value="Apfel,Birne,Feige,Plaume"}
{assign var="myArray" value=","|explode:$string}

Ungewohnt an dieser Methode ist, dass das Trennzeichen als erstes geschrieben wird, während der eigentliche String erst am Ende kommt. Diese Tatsache ist dem Aufbau der PHP Funktion geschuldet. Will man nun z.B. einen Seiteninhalt in zwei Teile teilen welche mit einem [weiter] getrennt sind:

{assign var="moreContent" value="[weiter]"|explode:$content}
{$weiter[0]}

Mit {$weiter[0]} kann nun der erste Teil des Seiteninhalts angesprochen werden.

]]>
Fri, 04 Nov 2011 17:16:00 +0100 http://www.blattertech.ch/blog/49/Smarty-Ein-String-mit-explode-in-ein-Array-umwandeln.htm 0
Reguläre Ausdrücke http://www.blattertech.ch/blog/48/Regulaere-Ausdruecke.htm http://www.blattertech.ch/blog/48/Regulaere-Ausdruecke.htm#comments Vor kurzem war ich wieder mal auf der Suche nach einem regulären Ausdruck. Dabei habe ich das Tutorial von Daniel Fett gefunden welches ich hier verlinke:

Tutorial Reguläre Ausdrücke

Das Tutorial ist eines der besten deutschsprachigen Tutorials welches ich zu diesem Thema gefunden habe. Alle Zeichenkombinationen nach denen gesucht werden können sind hier aufgeführt und erklärt. So kann auch ein Regex-Laie relativ einfach zum Erfolg kommen. Zum Testen der Regulären Ausdrücke kann z.B. der RegExr (Online) oder auch das von Daniel Fett empfohlene Programm Regex-Coach.

Viel Spass beim Regexen.

]]>
Fri, 04 Nov 2011 13:24:00 +0100 http://www.blattertech.ch/blog/48/Regulaere-Ausdruecke.htm 0
Win7: Schnellstartleiste (Quickstart) anzeigen http://www.blattertech.ch/blog/47/Win7-Schnellstartleiste-Quickstart-anzeigen.htm http://www.blattertech.ch/blog/47/Win7-Schnellstartleiste-Quickstart-anzeigen.htm#comments Neue SymbolleisteUnter Windows Vista und Win7 wurde die aus WinXP bekannte Schnellstartleiste entfernt. Über einige wenige klicks lässt sich die Schnellstartleiste wieder aktivieren. Dazu mit dem Mauszeiger einen Rechtsklick auf die Taskleiste machen und im Pop-Up Menü auf "Symbolleisten" und dort "Neue Symbolleiste" wählen.

Im folgenden Dialog ist unter "Ordner" folgendes einzugeben:
%AppData%\Microsoft\Internet Explorer\Quick Launch

Quicklaunch Pfad angeben

Nun erscheint rechts die Schnellstartleiste. Um die Schnellstartleiste wie gewohnt rechts anzuordnen, muss wie folgt vorgegangen werden:
Mit dem Mauszeiger auf die Taskleiste fahren (irgendwo zwischen den offenen Programmen) und mit der rechten Maustaste klicken. Im Pop-Up Menü den Eintrag "Taskleiste fixieren" entfernen. Nun kann die Schnellstartleiste verschoben werden.

Dazu mit dem Mauszeiger zwischen die gerippte Fläche und dem Desktopicon klicken. Sobald ein 4-Weg Pfeil angezeigt wird, kann die Schellstartleiste nach links verschoben werden.

Nun muss mit nochmals mit der rechten Maustaste in die Schellstartleiste geklickt werden um den Text und Titel zu deaktivieren. Danach ist die Schellstartleiste wie unter WinXP gewohnt zu nutzen. Programme die hier abgelegt werden sollen, einfach hineinziehen.

 

]]>
Sun, 30 Oct 2011 13:46:00 +0100 http://www.blattertech.ch/blog/47/Win7-Schnellstartleiste-Quickstart-anzeigen.htm 0
iPhone: Safari Passwörter speichern http://www.blattertech.ch/blog/46/iPhone-Safari-Passwoerter-speichern.htm http://www.blattertech.ch/blog/46/iPhone-Safari-Passwoerter-speichern.htm#comments Nach dem es mich zum x-ten mal gestört hat, die Logindaten für eine Webseite im iPhone nicht speichern zu können, habe ich mir die Einstellungen des Safari ein wenig genauer angeschaut. Siehe da: Mit der Option "Automatisch Ausfüllen" können sehr wohl Kennwörter gespeichert werden.

Unter Einstellungen -> Safari -> Autom. ausfüllen -> Namen & Kennwörter findet sich die gewünschte Option.

iPhone: Safari Passwörter speichernHier können auch die gespeicherten Passwörter zurückgesetzt werden für den Fall das etwas nicht mehr funktioniert oder ein oder mehrere Passwörter nicht mehr automatisch ausgefüllt werden sollten.

Sobald man sich nun auf einer Webseite einloggt, wird man von Safari gefragt, ob die Daten gemerkt werden sollen oder ob auf dieser Webseite die Zugangsdaten nie gespeichert werden sollen. Beim nächsten Besuch der Webseite sind die Zugangsdaten bereits ausgefüllt und man muss nur noch auf Login klicken.

]]>
Sat, 29 Oct 2011 22:24:00 +0200 http://www.blattertech.ch/blog/46/iPhone-Safari-Passwoerter-speichern.htm 0
Grosse Dateien per E-Mail verschicken http://www.blattertech.ch/blog/45/Grosse-Dateien-per-E-Mail-verschicken.htm http://www.blattertech.ch/blog/45/Grosse-Dateien-per-E-Mail-verschicken.htm#comments Vor kurzem hatte ein Kunde von mir das Problem, dass er dringend eine 150MB grosse Datei eines Grafikers aus Deutschland haben sollte. Der Kunde hatte Windows, der Grafiker einen Mac. FTP viel ins Wasser, da der Grafiker davon überhaupt keine Ahnung hatte. Eine PHP Upload oder eine E-Mail Lösung scheitert an der Datenmenge.

Ist Dropbox oder ein ähnlicher Dienst nicht auf dem PC / Mac vorhanden, bietet sich ein Onlinedienst an, bei welchem man grosse Dateien heraufladen und einen Link dazu versenden kann. Die Datei kann jeweils ein paar Tage von diesem Server heruntergeladen werden und wird danach wieder gelöscht. Hier stelle ich fünf Dienste vor, welche dafür in Frage kommen:

1. Filemail

Bei Filemail kann man ohne Anmeldung bis zu 2 GB verschicken, mehrere Dateien auf einmal (die dann einzeln oder automatisch gezippt heruntergeladen werden können). Man kann das E-Mail selber schreiben. Die Seite ist SSL geschützt.

Filemail

2. Streamfile

Streamfile.com ist ein sehr einfacher und spartanischer Dienst: Man gibt nur die Empfängeradresse(n) ein, lädt das File hoch und das war’s. Die Datei darf bis zu 150 MB groß sein und ist für 24 Stunden unter dem Link verfügbar. Angemeldet können bis 30 GB grosse Dateien verschickt werden.
Es ist jedoch nicht möglich eine Absenderadresse anzugeben oder eine Nachricht mit zu senden. Somit muss der Empfänger vorgewarnt sein, damit er das Mail nicht als Spam löscht.

Streamfile

3. Dropsend

Bei  Dropsend kann man bis 2 GB grosse Dateien versenden. Beschränkt ist dies auf maximal 5 pro Monat. Es kann eine Absenderadresse angegeben werden, jedoch der Text zum versenden des Mails kann nicht definiert werden. Die Dateien bleiben 30 Tage gespeichert. Sobald eine Datei abgerufen wurde, wird sie nach 14 Tagen gelöscht.

Dropsend

4.Senduit

Senduit hat auch ein sehr spartanisches Design. Die Zeitdauer wie lange das File gespeichert bleiben soll, kann von 30 Minuten bis 1 Woche definiert werden. Die Datei kann maximal 100 MB gross sein.

Senduit

5. Yousendit

Yousendit ist etwas unübersichtlich. Die Dateigrösse ist auf 100MB beschränkt. Zusätzlich kann Betreff und Nachricht des Mails definiert werden.

Yousendit

 

]]>
Fri, 21 Oct 2011 06:43:00 +0200 http://www.blattertech.ch/blog/45/Grosse-Dateien-per-E-Mail-verschicken.htm 0
CMSMS: Gallery Ordner auslesen und mit einem Dropdown zur Auswahl geben http://www.blattertech.ch/blog/44/CMSMS-Gallery-Ordner-auslesen-und-mit-einem-Dropdown-zur-Auswahl-geben.htm http://www.blattertech.ch/blog/44/CMSMS-Gallery-Ordner-auslesen-und-mit-einem-Dropdown-zur-Auswahl-geben.htm#comments Vor ein paar Monaten erstellte ich eine Webseite welche vorallem aus einer Gallery besteht. Die einzelnen Galerien wurden auf einzelnen Seiten eingebunden. Damit dies möglichst einfach möglich ist, habe ich ein Plugin für AdvancedContent geschrieben, welches die Gallery-Ordner ausliest und als Dropdown zur Verfügung stellt.

Als erstes in den Ordner ./plugins folgende Datei laden:

function.getGalleryTree.php:

<?php

/**
 * ------------------------------------------------------------------------
 * Liest alle Gallery Ordner aus und übergibt sie als Liste AdvancedContent
 * ------------------------------------------------------------------------
 * blattertech informatik, Lukas Blatter, lb@blattertech.ch
 * Twitter: @lukasblatter
 * Web: www.blattertech.ch
 * ------------------------------------------------------------------------
 * History:
 * 2011.08.20 - Lukas Blatter - Inital Release
 * 2011.12.02 - Lukas Blatter - Unterstützt nun auch die Auswahl von Unterordnern
 *                              mit subdir="/pfad/zum/ordner"
 *                              $config Aufruf an 1.10.x angepasst.
 * ------------------------------------------------------------------------
 * This program is distributed under the GNU General Public License, Version 2,
 * June 1991. Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin
 * St, Fifth Floor, Boston, MA 02110, USA
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * */

function smarty_cms_function_getGalleryTree($params, &$smarty)
{

    $config = cmsms()->GetConfig();
    $delimiter = "|";

    if (!function_exists("getGalleryTreeAsArray"))
    {
        function getGalleryTreeAsArray($path = '.', $ignore = array()) {
            $dirTree = array ();
            $dirTreeTemp = array ();
            $ignore[] = '.';
            $ignore[] = '..';
            $ignore[] = '.htaccess';
            $ignore[] = 'error_log';
            $ignore[] = 'cgi-bin';
            $ignore[] = '.DS_Store';
            $ignore[] = 'thumb';

            $config = cmsms()->GetConfig();

            if (strpos($path,$config['uploads_path']) === FALSE)
                $path = $config['uploads_path']."/".trim($path,"/");

            $dh = @opendir($path);

            while (false !== ($file = readdir($dh))) {

                if (!in_array($file, $ignore)) {
                    if (!is_dir("$path/$file")) {
                        $fileinfo=pathinfo($path."/".$file);
                                        if((strtolower($fileinfo['extension']) == "jpg"
                                         or  strtolower($fileinfo['extension']) == "jpeg"
                                         or strtolower($fileinfo['extension']) == "gif"
                                         or strtolower($fileinfo['extension']) == "png") and strpos($file,"thumb") === FALSE)
                        $dirTree["$path"][] = $file;

                    } else {

                        $dirTreeTemp = getGalleryTreeAsArray("$path/$file", $ignore);
                        if (is_array($dirTreeTemp))$dirTree = array_merge($dirTree, $dirTreeTemp);
                    }
                }
            }
            closedir($dh);

            return $dirTree;
        }
    }
 
     $subdir = "";
         if (isset($params['subdir'])) {
         $subdir = "/".trim($params['subdir'],"/");
     }



    $dirTree = getGalleryTreeAsArray('/images/Gallery'.$subdir);
    $gallerys = array();

    foreach ($dirTree as $k => $v) {
        $pfad = str_replace($config['uploads_path']."/images/Gallery/","",$k);
        $gallerys[$pfad] = $pfad." (".count($v)." Fotos)";
    }

    ksort($gallerys);

    $smarty->assign("galleryTreeArray",$gallerys);
    $smarty->assign("galleryTreeTitel",implode($delimiter, $gallerys));
    $smarty->assign("galleryTreePath",implode($delimiter, array_keys($gallerys)));

    if ($params['action'] == "url")
        return implode($delimiter, array_keys($gallerys));
    else
        return implode($delimiter, $gallerys);

}

Eingebaut wird das wie folgt:

{* Dropdownfeld mit AdvancedContent erstellen *}
{AdvancedContent block="Gallery" label="Gallery"  block_type="dropdown" allow_none=true items="Keine Gallery|:::getGalleryTree :::" values="|:::getGalleryTree action='url':::" smarty=true assign="gallerypath"}

{* Gallery anzeigen wenn eine Gallery ausgewählt wurde *}
{if $gallerypath != ""}{Gallery dir=$gallerypath}{/if}

Im Dropdown werden nur Ordner angezeigt welche auch Bilder enthalten:

getGalleryTree Dropdown

Soll nur ein bestimmter Teil der Gallery angezeigt werden, kann über den Parameter "subdir" der Pfad zum entsprechenden Unterordner angegeben werden:

{* Dropdownfeld mit AdvancedContent erstellen *}
{AdvancedContent block="Gallery" label="Gallery"  block_type="dropdown" allow_none=true items="Keine Gallery|:::getGalleryTree subdir='pfad/zum/unterordner':::" values="|:::getGalleryTree action='url' subdir='pfad/zum/unterordner':::" smarty=true assign="gallerypath"}
]]>
Fri, 21 Oct 2011 06:25:00 +0200 http://www.blattertech.ch/blog/44/CMSMS-Gallery-Ordner-auslesen-und-mit-einem-Dropdown-zur-Auswahl-geben.htm 9