blog.bartlweb - a technologist's external brain

Alle Artikel

Netzwerktraffic unter Linux beobachten

Wer gerne ein Auslastungsdiagramm seiner Netzwerkverbindungen, wie aus dem Windows-Taskmanager bekannt, auch unter Linux hätte sollte sich einmal das Programm nload ansehen. Dieses wird über den Befehl "nload" inkl. der Angabe der Netzwerkverbindung (zB.: eth1) als Parameter aufgerufen.

Contentelemente in Typo3-Extension rendern

Die unteren zwei Zeilen PHP-Code ermöglichen es Content-Elemente aus einer Typo3-Extension heraus zu rendern und somit in die eigenen Extension einzubinden. Bekannt muss einem dabei lediglich die ID des Content-Elementes sein.

$tt_content_conf = array('tables' => 'tt_content','source' => "45",'dontCheckPid' => 1);
$content .= $this->cObj->RECORDS($tt_content_conf);

E-Mail-Adressen in Typo3-Extensions auf Gültigkeit prüfen

Des öfteren steht man vor der Aufgabe in selbstgeschriebenen Typo3-Extensions E-Mail-Adressen bei der Eingabe auf deren Gültigkeit zu prüfen. Das Typo3-Framework bietet für diese Aufgabe bereits eine fertige Funktion an.

if (t3lib_div::validEmail($email)) {
  echo "valid E-Mail!";
}

Hotlinking für Website-Ressourcen unterbinden

Hin und wieder ist es gewünscht oder gefordert, dass auf der eigenen Webseite eingebundene Dateien oder Ressourcen, nicht von externen Personen weiterverlinkt werden können (bzw. von Suchmaschinen erfasst werden dürfen). Der Vorgang des Verlinkens von Ressourcen einer Webseite auf anderen Webseiten wird Hotlinking genannt.

Um Hotlinking zu unterbinden können Sie per Apache mod_rewrite den Zugriff auf die entsprechenden Dateien nur dann erlauben wenn der Http-Referer eine Seite aus Ihrer eigenen Domain ist. Erstellen Sie dazu im Root-Verzeichnis oder im Ordner mit den Ressourcen eine .htaccess-Datei mit dem für Sie angepassten Beispiel.

alle Dateien vom Hotlinking ausnehmen

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://blog\.bartlweb\.net/.*$ [NC]
RewriteRule .* - [F,NC,L

Schrift-Dateien vom Hotlinking ausnehmen

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?bartlweb\.net/.*$ [NC]
RewriteRule \.(ttf|otf|woff|eot)$ - [F,NC,L]

dynamisch erzeugtes CSS und JS aus Typo3-Extension heraus einbinden

Gerade bei GoogleMaps-Extensions wird oft dynamisch erzeugtes JavaScript oder CSS benötigt. Um dieses aus einer Extension heraus in den Head-Bereich der Webseite einzubinden, liefert Typo3 zwei Funktionen:

$GLOBALS['TSFE']->setJS($this->extKey, 'alert("dynamisches JS");');
$GLOBALS['TSFE']->setCSS($this->extKey, '.dynamisch {margin: 1em}');

einfaches auslesen von ganzen Datensätzen aus der Datenbank anhand der UID in Typo3-Extensions

Um einen ganzen Datensatz eines Elementes aus einer Datenbank-Tabelle (Vorraussetzung ist das existieren der Spalte uid) in Typo3 auszulesen, bedarf es keiner komplexen Datenbankabfragen. Ein einfacher Befehl der als Parameter den Tabellennamen und die UID des Datensatzes annimmt genügt.

$row = $this->pi_getRecord(<Tabellenname>, <UID>); 

Flexform-Daten in Typo3-Extension auslesen

Um die Flexform-Daten eines Plugins zu nutzen benötigt man in seiner eigenen Extension etwas PHP-Code. Dabei kann nicht nur auf Flexform-Daten des aktuellen Plugins sondern auch auf jene jedes beliebigen (soweit der Datensatz bekannt ist) zugegriffen werden.

Flexform-Daten des aktuellen Plugins

$this->pi_initPIflexForm();
$this->flexform = array();
 
// get flexform data
$piFlexForm = $this->cObj->data['pi_flexform'];
$sDef = current($piFlexForm['data']);
foreach ( $piFlexForm['data'] as $sheet => $data ) {
    foreach ($data['lDEF'] as $key => $val ) {
        $this->flexform[$key] = $this->pi_getFFvalue($piFlexForm, $key, $sheet, 'lDEF');
    }
}

fremde Flexform-Daten

$row=$this->pi_getRecord(tt_content, $this->conf['foreignFlexformContentElementID']); 
$flexformData = t3lib_div::xml2array($row['pi_flexform']);
 
$foreignFlexform = array();
 
$piFlexForm = $flexformData;
$sysLanguage = $GLOBALS['TSFE']->sys_language_uid;
$sDef = current($piFlexForm['data']);
$lDef = array_keys($sDef);
foreach ( $piFlexForm['data'] as $sheet => $data ) {
    foreach ( $data as $lang => $value ) {
        foreach ( $value as $key => $val ) {
            $foreignFlexform[$key] = $this->pi_getFFvalue($piFlexForm, $key, $sheet);
        }
    }
}

Windows Update funktioniert nicht mehr (Fehler 0xC8000643)

Sollte unter Windows XP das Online-Update mit dem Fehlercode 0xC8000643 abgebrochen werden, kann es sein, dass das lokale Updateverzeichnis von Windows beschädigt ist. Abhilfe schafft ein löschen dieses Verzeichnisses, dass vom Windows-Updateprozess daraufhin wieder neu erstellt wird.

Gehen Sie dazu wie folgt vor:

1. starten Sie die Einbeaufforderung als Administrator
2. Stoppen Sie den Update-Dienst: net stop wuauserv
3. Löschen Sie das Verzeichnis SoftwareDistribution im Windows-Ordner Ihrer Systempartition
4. Starten Sie den Update-Dienst wieder: net start wuauserv
5. Windows Update erneut durchführen

DIN Papier-Formate

Unten finden Sie eine Liste aller DIN Papier-Formate (Breite x Höhe, Angaben in Milimeter):

A0     841 x 1189
A1     594 x 841    
A2     420 x 594
A3     297 x 420
A4     210 x 297
A5     148 x 210
A6     105 x 148
A7      74 x 105
A8      52 x 74
A9      37 x 52
A10     26 x 37

Automatische Anmeldung beim Systemstart unter Windows

Um automatisch beim Systemstart von Windows angemeldet zu werden genügt es unter Windows XP bzw Windows 7 per Ausführen den folgenden Befehl einzugeben:

control userpasswords2

und dort den Haken bei Benutzer müssen Benuternamen und Kennwort eingeben zu entfernen. Danach werden Sie bei Bestätigen mit OK nach dem Benutzernamen und Passwort jenes Benutzers, der automatisch am System angemeldet werden soll, gefragt.