TYPO3: Felder über PageTS entfernen

21. Juni 2011 in TYPO3 von Leo

Um für Kunden welche Backend-Zugriff für ihre TYPO3 Installation den Umgang mit TYPO3 möglichst einfach und Benutzerfreundlich zu gestalten, wird alles unnötige – was sie halt nicht benötigen – entfernt. So auch bei den Feldern. Verschiedene Plugins wie z.B. tt_news sind sehr Umfangreich und bieten Felder an die der Kunde nicht benötigt. Da es teilweise sehr viele Felder hat, könnte dies den Benutzer nur verwirren, als dass sie ihm was nutzen. Eine möglichkeit diese Felder zu entfernen, ist über die Zugriffsliste. Man bearbeitet eine Gruppe und kann dort bei den Rechten die Zugriffsliste einschränken, somit werden die ausgeschlossenen Felder ausgeblendet.
Was wenn jedoch einige Felder auf verschiedenen Seiten (oder z.B. SysFoldern mit Datensätzen für Plugins) benötigt werden und auf anderen wiederum nicht?

Eine simple Methode ist das auslagern des pageTS in eine oder mehrere Dateien. Diese Dateien können wir im pageTS einbinden.
Und so gehts:

Wir erstellen eine Datei im fileadmin Ordner, wo genau ist egal. Am besten nehmen wir die Endung .ts, auch wenn es sich eigentlich um eine Textdatei handelt, so wissen wir was es ist.
In dieser Datei können wir für jedes Feld das wir nicht haben wollen folgende Zeile einfügen:

TCEFORM.tt_news.author.disabled = 1

Somit wird das Autoren-Feld von tt_news nicht mehr angezeigt. Dies kann für alle Spalten in einer Tabelle gemacht werden, am besten öffnet man noch phpMyAdmin (oder ähnlich) und kopiert dort die Namen der Spalten.
Um ein Feld zu erlauben wird demnach einfach eine “0″ gesetzt.

Damit das ganze seine Wirkung zeigen kann, muss es noch im pageTS eingebunden werden:

<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/ts/setup/tt_news-fields.ts">

Fertig! Um Felder je nach Ort zu erlauben / verbieten, erstellt man am besten 2 Dateien (für zum erlauben / verbieten) und bindet diese je nach dem ein wo halt die Felder erlaubt oder verboten werden sollen.

pageTS: Seiten TypoScript, zu finden beim bearbeiten einer Hauptseite unter dem Tab “Resources” (Ressourcen).

Subqueries in TYPO3 mit TypoScript

20. Januar 2011 in TYPO3 von Leo

In TYPO3 lassen sich per TypoScripts normale Subqueries bilden, wie man sie aus MySQL kennt. Das ganze lernte ich im Zusammenhang mit einem RSS Feed, welchen ich für einen Kunden erstellte. So musste ich mit einer ID welche ich zu beginn über eine Variable von RealURL erhielt in grossen mm_Tables nach nach weiteren ID’s suchen, mit welchen ich dann zum Ziel kam.

Für solche grosse Sprünge in Tabellen nutzten wir dann Subqueries, sozusagen Queries in Queries, welche bis ins unendliche verschachtelt werden können (Achtung Ladezeiten!).

elementxy = CONTENT
elementxy {
        # Die Tabelle die durchsucht wird
        table = tx_extension_unsere_tabelle
        select {
            andWhere {
                # Optional: Eine Variable welche wir mitbekommen (get)
                data = GP:tx_extension_pi1|showUid
                insertData = 1
                wrap = uid IN (SELECT uid_local FROM tx_extension_unsere_tabelle_auth_mm WHERE uid_foreign IN (SELECT uid_foreign FROM tx_extension_unsere_tabelle_head_mm WHERE uid_local = |))
            }
            # Der Sysfolder mit den Datensätzen
            pidInList = 1234
            orderBy = crdate DESC
            max = 15
        }

        renderObj = COA
        renderObj {
            # Das Feld welches vom SELECT ausgewählt wird
            field = title
            # Das Resultat wird gewrappt
            wrap = <item>|</item>
       }
}

Was wird also gemacht?
Zuerst geben wir die Tabelle an welche wir mit dem normalen SELECT auswählen, also SELECT … FROM . Welche Spalte wir ins SELECT werfen wird weiter unten im renderObj.field bestimmt, unser normales SELECT würde also so aussehen:

SELECT title FROM tx_extension_unsere_tabelle ...

Das ist natürlich noch nicht alles. Nach dem normalen SELECT geht es weiter mit dem andWhere aus unserem TypoScript Code. Dieses andWhere Statement hängt eigentlich nur ein WHERE an unseren bisherigen Code und wird dann mit dem Rest was im andWhere steht weitergeführt. Deshalb steht im andWhere auch nicht noch ein SELECT oder ähnlich am Anfang.

Nachdem unser Query mit den Subqueries gebildet wurde, wird mit pidInList die ID unseres Sysfolders angegeben, also der Sysfolder wo die Datensätze gespeichert sind, welche wir hier benötigen. OrderBy und Max sind normale SQL Statements, welche sicherlich jedem bekannt sind.

Danach wird unser Resultat gerendert und in den Wrap geschrieben (dort wo die Pipe “|” ist), wir können das ganze noch z.B. mit HTML Code wrappen.

Lösung: RTE lädt nach Update auf TYPO3 4.4 nicht mehr

5. August 2010 in TYPO3 von Leo

Als ich kürzlich die TYPO3 Installation eines Kunden von TYPO3 4.3.3 auf 4.4.1 geupdated habe, merkte ich beim standardmässigen Testen der Seite, dass der RTE (Rich-Text Editor) im Backend nicht mehr geladen wurde.

Nach einer kurzen Google suche fand ich auch schon die Ursache dieses eigentlich kleinen Problems. Und zwar tritt dieser Fehler auf, wenn die Extension ‘date2calendar‘ installiert ist.

Der RTE wurde nämlich in der neuen Version 4.4 komplett überarbeitet und mit ExtJS umgesetzt. Ausserdem wird die genannte Extension gar nicht mehr benötigt, da sie schon im voraus im Core eingebaut ist.

Extension deinstallieren und der RTE funktioniert wieder! :)

TYPO3: Caretaker vorgestellt + Installation

11. Februar 2010 in Tutorials, TYPO3 von Leo

In letzter Zeit beschäftigte ich mich sehr mit der TYPO3 Extension ‘Caretaker‘, welche, meiner Meinung nach sehr hilfreich ist. Zur Geschichte:
Markus gab mir als Davide hier schnupperte den Auftrag, ich soll Caretaker auf den TYPO3 Installationen unserer Kunden installieren. Also setzte ich mich an die Aufgabe, und installierte Caretaker. Bei einigen Installationen ging dies Problemlos, bei anderen erschienen PHP Fehler, welche wegen dem Hoster verursacht wurden. Die ganze Aufgabe ging mehrere Tage, da alles recht Zeitaufwändig war.

Doch was genau ist Caretaker?
Wie der Name schon sagt, kann man mit dieser Extension seine TYPO3 Installationen pflegen. Die externen (Kunden-) Installationen kommunizieren mit der eigenen TYPO3 Installation, welche sozusagen als Hauptquartier von Caretaker dient. All die TYPO3 Installationen geben nun verschiedene Dinge bekannt, wie z.B. die aktuelle installierte TYPO3 Version, unsichere Extensions und viele weitere hilfreiche Informationen. Das ganze wird dann wie gesagt in der Zentrale (dem Hauptquartier) aufgelistet, in einer grossen Liste, sortiert nach den Installationen.

Was bringt Caretaker?
Dank Caretaker haben wir stets eine Übersicht über die TYPO3-Installationen unserer Kunden, und können so schnell handeln, falls ein TYPO3 Update oder etwas sonstiges benötigt wird. Ausserdem trägt Caretaker auch zur Sicherheit der Webseiten unserer Kunden bei.

Installation von Caretaker

Ich erkläre euch nun wie Caretaker sinngemäss installiert wird. Zuerst müsst ihr euch die Extension herunterladen. Da das Plugin noch in Entwicklung ist, findet man es noch nicht direkt in der Extension Datenbank von typo3.org, sondern muss es in der TYPO3 “Schmiede” herunterladen: Klick.

1. Installiert Caretaker (caretaker) und Caretaker Instance (caretaker_instance) auf eurer eigenen TYPO3 Installation.

2. Unter Caretaker Instance solltet ihr, wenn ihr alles richtig gemacht habt, nun einen Public Key sehen, welcher ihr benötigt um fortzufahren (nach der Installation im Ext. Manager in Caretaker Instance noch unter “UPDATE!”).

3. Installiert Caretaker Instance nun auf einer externen TYPO3-Installation, und lasst euch auch einen Key Generieren. Kopiert den internen Public Key nun in die externe Installation und umgekehrt (nicht Key überschreiben, sondern in das leere Feld einfügen!).

4. Erstellt nun in der internen Installation im Listen-Modul einen neuen Eintrag  und weist ihn in eine Gruppe (Standard-Tests).

5. Geht nun auf den backend Punkt “Caretaker Overview”. Dort klickt ihr auf die gerade eingetragene Seite und klickt auf den “refresh forced” Button.

Nun sollte zumindest der “HTTP-Test” grün erscheinen, da dieser bekannt gibt, ob die beiden Installationen miteinander Kommunizieren können.

osTicket – Ticketing Support System

in Internet, Software, Tutorials von Leo

Um unseren Kunden einen schnelleren und einfacheren Support Garantieren zu können, testeten wir letzte Woche das Ticketing Support System ‘osTicket’. Mit osTicket ist es den Kunden möglich, neue Probleme, Wünsche oder Fragen direkt über das Support System in Form von Tickets einzugeben. Diese werden dann jemandem zugewiesen werden, und werden dann abgearbeitet.

Installation:
Die Installation von osTicket ist eigentlich recht simpel. Natürlich wird eine mySQL Datenbank sowie ein Server benötigt, auf welchem das System installiert werden kann. Nachdem man die entpackten Dateien von osTicket auf den FTP-Server geladen hat kann man das Installations-Skript über den Browser aufrufen: http://www.deinewebseite.com/support/setup/
Mit dem osTicket Installations-Skript, mit welchem man osTicket auf seinem Server installiert, geht alles recht zügig. Im Installations-Skript muss man lediglich die Datenbank sowie den User und die Login-Informationen, welcher auf die Datenbank zugreifen kann, angeben. Eventuell müssen noch die Rechte über einen FTP-Client gesetzt werden, damit osTicket laufen kann.
Danach ist osTicket normal auf dem Server installiert und sollte einwandfrei laufen.
Nach der Installation mussten wir noch eine Deutsche Übersetzung finden, was nicht so einfach war, da zur aktuellen Version von osTicket eigentlich noch keine Deutsche Übersetzung existiert. Also mussten wir eine veränderte Entwickler Version von osTicket installieren, welche das ganze Problem löste.

Mit der Übersetzung die wir verwenden, wurde jedoch nur der Teil, welche die Kunden sehen, übersetzt. Das Admin-Interface blieb in englisch – was ja nicht sonderlich schlimm ist. Jedoch ging es gleich zum nächsten Problem, die E-Mails, welche unsere Kunden erhalten, wenn es zum Beispiel eine Antwort auf eines ihrer Tickets gibt, war auch noch komplett in englisch. Die ganzen Phrasen sind alle in der Datenbank gespeichert, was heisst, dass wir die Datenbank immer wieder neu Importieren müssen. Zurzeit arbeite ich noch an der Übersetzung der E-Mail Templates, um alles noch etwas auszubessern.

osticket

Meine erste richtige TYPO3 Extension

4. Januar 2010 in TYPO3 von Leo

Nach meiner kleinen, aller ersten “Extension”  (Klick), habe ich vor kurzem nun eine richtige Extension erstellt. Und zwar habe ich in einem kürzlichen Projekt mit meinem Lehrmeister und teilweise der Hilfe von anderen eine erste “wirkliche” Extension erstellt. Die Extension nennt sich Testimonials und kann hier aufgefunden werden (siehe rechte Seite).
Die Extension zeigt zufällig eine der im backend ausgewählten Personen aus und zeigt sie an. Dabei wird der Name, Titel, sowie das Bild etc. aus der Personen Datenbank genommen.
Geschrieben ist die Extension extra für dieses Projekt und befindet sich bisher nur dort im Einsatz.

Angefangen haben wir wieder mit Kickstarter, um die einfachen Felder für die Eingabe im Backend zu erstellen. Danach mussten wir jedoch noch einiges mit PHP, HTML, sowie CSS anpassen, damit die Extension schlussendlich so aussah, wie es sich der Kunde gewünscht hat.
Die Extension ist in 2 Sprachen verfügbar, deutsch und englisch. Hierbei wird einfach jeweils die englische Übersetzung des Feldes aus einem XML File genommen, in welchem dies alles abgespeichert ist.

Nach dem Break erfahrt ihr noch alles im Detail.

Swisscom: technische Probleme mit der neuen XtraZone

5. November 2009 in Internet von Leo

Seit kurzem ist die neue und modernere XtraZone von Swisscom auf geschaltet worden. Sie ersetzt die alte und beliebte einfachere XtraZone, welche bisher alle mit ihren Smartphones über das Internet nutzten, um die 500 gratis SMS voll auskosten zu können. Nun hat die Swisscom jedoch technische Probleme mit der neuen XtraZone, wie sie allen Kunden unter 26 per SMS mitteilte. So steht einem zurzeit nur die alte XtraZone zur Verfügung, da Swisscom die neue nun wieder offline genommen hat. Viele Kunden der Swisscom sind verärgert, da es nun mit den aktuellen Handy-Apps nicht mehr möglich ist die XtraZone zu verwenden – hat Swisscom dies gezielt gemacht?! Jedenfalls bekommt jeder Swisscom Kunde der die XtraZone verwenden kann – also alle unter 26 jährigen – diesen Monat 50 gratis SMS. Zumindest hiermit sie sich ein wenig entschuldigen.

Magento Tutorial – Ähnliche Produkte

8. Oktober 2009 in Magento, Tutorials von Leo

Für alle Magento Anfänger habe ich hier ein kleines Tutorial im PDF Format erstellt. Das Tutorial erklärt neben der Vorgehensweise auch noch was denn genau die Funktion “Ähnliche Produkte” ist. Es sind noch weitere Tutorials zu Magento in der Mache, die ich auch alle hier Veröffentlichen werde.

Ein kleiner Ausschnitt aus dem Tutorial: In Magento ist es möglich in den Einstellungen eines Produktes ähnliche Produkte zu Erfassen. Wenn man bei einem Produkt Ähnliche Produkte Angegeben hat, werden diese beim Ansehen des Haupt-Produktes auch angezeigt. So zeigt man dem Kunden was man sonst noch für ähnliche Sachen zu bieten hat, die dem Kunden vielleicht sogar besser gefallen.

Loeschen von Bestellungen in Magento

in Magento von Leo

Viele wundern sich vielleicht wieso es in Magento nicht möglich ist Bestellungen von Kunden zu löschen. Ich habe hier für euch nun die Lösung für das Problem gefunden. So könnt ihr ab sofort alle Bestellungen ohne Probleme löschen.

Früher musste das ganze mühsam in der Datenbank erledigt werden, doch nun gibt es eine Extension für Magento, mit der ihr Bestellungen sehr komfortabel löschen könnt. Die Extension heisst kurz und simpel “Delete Orders”. Wenn ihr sie installiert habt seht ihr gleich unter dem Punkt Bestellungen oben rechts im Dropdown die Auswahl “Löschen” oder “Delete”.