Archiv für März 2009

Automatische Spalten-Trennung beim Einfügen in Excel

Freitag, 27. März 2009

Wenn man in MS Excel (200/2003) Daten aus der Zwischenablage einfügt, werden sie, wenn es sich um Text (oder zum Beispiel CSV-Daten) handelt, normalerweise nicht anhand eines Trennzeichens in Spalten separiert. Fügt man Text einmal so ein, klickt auf die Zelle und wählt

Daten -> Text in Spalten…

erscheint ein Dialog zum Einstellen des Spaltentrennzeichens (Tab, Semikolon, Komma…). Nach Fertigstellen wird die ausgewählte Zelle dann aufgeteilt. Excel scheint sich das Trennzeichen zu merken und beim späteren Einfügen wieder mit diesen Einstellungen zu verfahren, so dass Daten aus der Zwischenablage direkt in Spalten umgesetzt werden.

Tivoli Storage Manager, Wiederherstellung

Mittwoch, 25. März 2009

Gewöhnlich unter /opt/tivolie/tsm/client beheimatet ist der TSM Client als Java und Command Line Version. Eine (sehr) kurze Referenz zur Befehlszeilen-Version:

  • dsmc – Client starten
  • query backup * – sucht gesicherte dateien im aktuellen (lokalen) Verzeichnis
  • query backup -subdir=yes -inactive /srv/hups-geloescht/* – sucht inklusive Unterverzeichnisse in /srv/… auch nach inaktiven Versionen. Das Abfragen ohne Angabe von -pitdate dauerte wesentlich länger als das unter Angabe des Datums.
  • restore -subdir=yes /srv/hups-geloescht/* /srv/juhu-wieder-da/ – stellt wieder her
  • weitere Optionen zum restore und Abfragen:
    • -FROMdate=15.02.2007 -TODate=17.02.2007 – nur Versionen innerhalb dieser Zeitspanne
    • -pitdate=19.10.07 – Version, wie sie zu diesem Zeitpunkt war (je nach Server kann das Datumsformat variieren)

Die Konfiguration des Clients findet sich in ../tsm/client/ba/bin/dsm.sys. Das Anzeigen und Abrufen der Files kann mitunter seeehr lange dauern. Ohne Angabe von pitdate war dieses TSM gar nicht zum Restore zu bewegen.

Server 2003, Druckaufträge lassen sich nicht löschen

Mittwoch, 25. März 2009

Lösung zum Löschen aller Druckaufträge, falls sie sich im Druckerdialog nicht entfernen lassen:

net stop spooler
del c:windowssystem32spoolprinters*
net start spooler

Das löscht die Druckaufträge aller Drucker.

Typo3 Absolute URLs und RTE Parsing

Dienstag, 24. März 2009

RTE Content aus der Datenbank wird ohne spezielle Konfiguration derart geparst, dass sich Pfadangaben relativ auf den Stammhost beziehen. Für eine Extension sollten URLs, die auch auf andere Projekte exportiert werden (Veranstaltungsextension, s.u.) aber absolut sein, damit Links zum Beispiel auf .pdf-Files noch stimmen. Einfach so konnte ich die Funktion piRTEcssText leider nicht dazu bewegen, absolute URLs auszugeben. Es gibt jedoch eine praktische Methode in t3lib_div:

t3lib_div::locationHeaderUrl ( $ path )

Prefixes a URL used with ‚header-location‘ with ‚http://…‘ depending on whether it has it already.

* If already having a scheme, nothing is prepended
* If having REQUEST_URI slash ‚/‘, then prefixing ‚http://[host]‘ (relative to host)
* Otherwise prefixed with TYPO3_REQUEST_DIR (relative to current dir / TYPO3_REQUEST_DIR) Usage: 30

Parameters:
string URL / path to prepend full URL addressing to.

Returns:
string

Mit geschicktem Regex werden so alle Links und Bilder schonmal absolut:

$html_output=preg_replace(‚#(href=|src=)“([^“]*)“#eis‘,“‚href=“‚.t3lib_div::locationHeaderUrl(‚$2‘).'“‚“,$this->pi_RTEcssText($db_input));

Für andere File-Verweise könnte man den (href=|src=)-Teil erweitern.

Servergespeichertes Profil kann nicht geladen werden

Montag, 23. März 2009

Lief zuvor problemlos und auf einmal (wie immer natürlich ohne, dass irgendwas passiert ist) lädt Windows (XP oder vorherige) das servergespeicherte Profil nicht mehr und meldet den Nutzer mit einem temporären lokalen Profil an. Mit anderen Profilen geht es problemlos und liegt also an genau diesem Profil. Nach Blick in die Ereignisanzeige zeigt sich, dass Dateien der Art „prf***.tmp“ das Problem sind und nicht geladen werden können.

Finden der problematischen Temp-Files
find | grep prf
und löschen!

Typo3 Extension Plugin, Content-Export zwischen zwei Projekten und Files schreiben

Mittwoch, 18. März 2009

Für eine Extension soll Extensioneigener Content aus einem Projekt heraus in ein anderes exportiert werden. Genauer: Eine Veranstaltungsliste mit Datum, Titel, Ort, Eventtyp, Text. Der Export in ein entferntes Projekt läuft so: Dort ist die Extension ebenfalls installiert und das Plugin zur Ausgabe von Events erhält als Einstellung zusätzlich eine URL. Die stammt aus dem ersten Projekt und ist eine CLI. (http://www.typo3-tutorials.org/ – Ein CLI Howto)
Mittels eines serialisierten Arrays werden damit Daten, die im ersten Projekt angelegt wurden automatisch auch im zweiten angezeigt. Problematisch war dabei noch, dass eine CLI-Anwendung nur schwierig Content rendern kann. Der Texteintrag für die Veranstaltungen ist nämlich ein RTE, das unter Umständen Bilder oder Links enthält. Eine Verarbeitung erst im Zielprojekt würde falsche Links erzeugen. Deshalb werden die Daten innerhalb des Plugins in Files geschrieben, da sie dort direkt mittels

tslib_pibase::pi_RTEcssText()

geparst werden können. Die Methode macht aus den Datenbankinhalten ausgabebereiten Code. Möchte man im Plugin in Files schreiben, ist zu beachten, dass relative Pfadangaben möglicherweise scheitern. Die Methode extPath() liefert einem den absoluten Pfad zu einer beliebigen Extension – also auch der eigenen:

t3lib_extMgm::extPath(„MeinExtensionname“)

PHP Error Handler

Dienstag, 17. März 2009

Manche PHP-Installationen sind derart stumm, dass sie selbst grobe Fehler ignorieren. Füge am Beginn eines Dokumentes Folgendes ein, um Fehler entsprechend zu behandeln bzw. sie überhaupt erst anzuzeigen:

function handleError($n, $m, $f, $l) {
echo „user error handler: e_warning=“.E_WARNING.“  num=“.$n.“ msg=“.$m.“ line=“.$l.“n“;
return true;
}
set_error_handler(‚handleError‘);

Gruppenrichtlinie „neu laden“

Mittwoch, 11. März 2009

Kurz und bündig:

gpupdate /force

Aktualisiert die Gruppenrichtlinien-Einstellungen und wendet alle Einstellung neu an.

Windows Server, Registry-Einstellungen als Gruppenrichtlinie verbreiten

Mittwoch, 11. März 2009

In diesem Fall soll das Dezimaltrennzeichen (unter Systemsteuerung -> Regions- und Sprachoptionen) auf „.“ statt dem Standard-Komma für Deutsch eingestellt werden. Dazu erstellt man zum Beispiel mit Hilfe von „Policy Template File Editor“ (http://www.novell.com/coolsolutions/tools/14159.html) oder auch per Hand eine administrative Vorlage. Für das angesprochene Dezimalzeichen ist der Registry-Eintrag sDecimal in Control Panel/International zu setzen. Die erzeugte Vorlage sieht in diesem Fall so aus:

CLASS USER

CATEGORY „Control PanelInternational“
KEYNAME „Control PanelInternational“

POLICY „sDecimal“
PART „sDecimal“
EDITTEXT
DEFAULT „.“
VALUENAME „sDecimal“
END PART
END POLICY

POLICY „sThousand“
PART „sThousand“
EDITTEXT
DEFAULT „,“
VALUENAME „sThousand“
END PART
END POLICY

END CATEGORY

Im Gruppenrichtlinieneditor Rechtsklick auf Administrative Vorlagen -> Vorlage hinzufügen. Dort kann die .adm-Datei eingebunden werden.
Wichtig: Um die erstellte Vorlage auch zu sehen unter Ansicht -> Filterung -> Haken bei „Nur vollständig verwaltbare Richtlinieneinstellungen anziegen“ weg machen. Nur dann ist die Einstellung zu sehen.

Weist man die Richtlinie einer Gruppe zu, so wird alles fein.

Server 2003, IIS, Plesk und die Rechte

Mittwoch, 11. März 2009

In Plesk gibt es zur Konfiguration eines Hostings die Option „Zusätzliche Schreib-/Änderungsberechtigungen“. Durch Aktivieren erhält der Benutzer „Plesk IIS User“ – bzw. der IUSR_ftpaccountname – Vollzugriff auf httpdocs. Zu sehen unter erweiterte Sicherheit. Da Skripte anscheinend auf diesem Benutzer ausgeführt werden (sollten eigentlich mit dem User des Application Pools laufen), können sie somit vollständig alle Dateien schreiben und ändern.

Unsicher!

Im Notfall auf einzelne Files dem entsprechenden Benutzer Schreibrechte geben.