Suche
Suche Menü

CMSMS: Automatisch Seiten-Urls generieren

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

 

CMSMS: TinyMCE – Filepicker – Ordner öffnen sich nicht

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.

Facebook, Google+ und Flattr Buttons mit AdBlock Plus blockieren

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.

Schadsoftware im Umlauf welche zu Zahlung auffordert

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.

Smarty: Ein String mit explode in ein Array umwandeln

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}
{$moreContent[0]}

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

Reguläre Ausdrücke

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.

iPhone: Safari Passwörter speichern

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.

Allgemein

Grosse Dateien per E-Mail verschicken

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

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

Steamfile

 

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

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

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

Yousendit