sm_employeelist enthält nun auch Veranstaltungslisten

Ich habe meiner TYPO3-Extension sm_employeelist ein kleines Update auf Version 1.1.0 gegönnt. Sie umfasst jetzt auch die Möglichkeit, Veranstaltungen einzutragen, zu denen sich die Mitarbeiter anmelden können. Die folgenden Screenshots sollten die Funktion verdeutlichen. Die Mitarbeiter können sich direkt im Frontend an-/abmelden und nur die Administratoren müssen ins Backend, um die Veranstaltungen anzulegen etc.

eventlistfrontend.jpg

Über Stefan

Polyglot Clean Code Developer

25 Kommentare

  1. Hallo,

    ich würde gern diese Extension einsetzen, da wir in unserer Firma etwas ähnliches haben, dies aber selbst “stricken” mussten.

    Unsere Firma ist ein Dienstleister, der ua. Mitarbeiter an andere Firman verleiht. Wir entwickeln auch im Auftrag anderer Firmen.
    Daher meine 1. Frage: Kann man mit der Extension Firmen und Standorte verwalten?

    Da es auf Grund unserer Tätigkeit viele Bewerber gibt (und auch viele, die die Firma verlassen), sind nicht alle Personen in der Users-Tabelle unseres Typo3-Systems enthalten. Auch enthält die Users-Tabelle neben den eigenen Mitarbeitern auch Externe, die einen Zugriff auf unsere Daten benötigen.
    Daher meine 2. Frage: Kann die Extension die nötigen Daten parallel zur Users-Tabelle speichern, um ehemalige Mitarbeiter nicht zu verlieren (History), Bewerber zu speichern, die evt. nicht eingestellt werden, und zwischen eigenen Mitarbeitern und Externen unterscheiden?

    Um die Vermittlung von Mitarbeitern und Bewerbern zu verbessern, sollen deren Fähikeiten erfasst werden. Auch sollen diese bewertet werden können (wie Schulnoten 1-5).
    Daher meine 3. Frage: Ist es geplant/möglich, ein solches Feature zu implementieren?

    Zum Schluss:
    Unsere selbst gestrickte Liste ist Teil eines “selbst gestrickten” Projekt-Management-Tools, das auf Grund der stark anwachsenden Komplexität/Funktionalität verändert werden muss. Das Auslagern von Teilen der Funktionalität ist eine der Optionen, die ich habe. Zum Anderen könnten die mit dieser Extension gespeicherten Informationen auch in einer anderen Extension verwendet werden (die ebenfalls verändert werden muss).

    Zur Onlinedokumentation:
    Ich als Windows-User mag es, wenn ich Dinge anklicken kann. Daher mag ich auch Typoscript und ähnlich textgebunde Aspekte von Typo3 nicht sonderlich. Ist es möglich, ein paar Bilder in der Dokumentation hinzuzufügen?
    Das betrifft vor allem folgende Punkte
    – 1.3 – wo genau? was kommt nach dem “>”?
    – 1.4 – was alles ausser den 2 Einträgen aus dem Beispiel? Funktioniert die Konfiguration auch ohne Flexforms
    – 1.5 – ist eine bebilderte Schritt-für-Schritt-Anleitung möglich?

  2. zu 1) Nein, es gibt keine Unterstützung für Standorte oder mehrere Firmen.
    zu 2) Auch das geht nicht. Wir haben bei uns zu diesem Zweck eine “Abteilung” für ehemalige Mitarbeiter eingerichtet.
    zu 3) Bewertungen sind im Moment ebenfalls nicht möglich/geplant. Das sollte sich allerdings recht einfach machen lassen (wobei ich im Moment leider keine Zeit dafür habe).

    Die Dokumentation könnte ich überarbeiten, allerdings habe ich dazu im Moment wie gesagt wenig Zeit. Ich denke aber, dass die Anleitung durchaus gut zu verstehen ist, wenn man sich ein wenig in TYPO3 einarbeitet. TYPO3 ist nunmal ein mächtiges Werkzeug, für das man halt ein wenig Lernaufwand benötigt. Trotzdem an dieser Stelle ein wenig Hilfe:
    1.3) Gar nichts. Das ist der Sinn der Zeilen! Der vorhandene Inhalt soll gelöscht werden. Wie man das Template einer Seite bearbeitet, sollte bekannt sein… (Setup- und Constants-Feld unter “Template”)
    1.4) Wie in der Anleitung beschrieben, lässt sich alles ohne Flexform und dafür im Template konfigurieren. Welche 2 Einträge sind da jetzt gemeint?
    1.5) Also wenn das nicht schon bebildert ist… Wie gesagt, ein wenig muss man sich schon mit TYPO3 auseinandersetzen! Besonders das Bearbeiten des Templates ist eine zentrale Aufgabe, die man beherrschen sollte. Ich empfehle die Lektüre von Modern Template Building, Part 1.

    Für weitere Fragen stehe ich gerne zur Verfügung.

  3. Hallo, sehr schöne Extension, vielen Dank dafür. Ein kleines Problem tritt auf:
    wenn ich die Extension aufrufe (im Extension-Manager), kommt folgende Fehlermeldung, die auch mit “Update” nicht wegzubekommen ist.

    Update needed:
    Changing fields
    ALTER TABLE tx_smemployeelist_emp_events DROP PRIMARY KEY;
    ALTER TABLE tx_smemployeelist_emp_events ADD PRIMARY KEY (emp_id, event_id);

    Außerdem wird mir nur das Event angezeigt, dass ich eingegeben habe. Wie stelle ich ein, dass die Detailansicht eingeschaltet wird?
    … /veranstaltung-detail.html?tx_smemployeelist_pi2%5BevtID%5D=1
    zeigt mir nichts an, da ich auch über das Flexform nichts eingeben kann.

    Viele Grüße,
    Nicole

  4. Dann antworte ich mal selber:
    habe gerade herausgefunden, dass (in einem FE-User geschützten Bereich) der ZUGRIFF verändert werden muss.
    ALLE muss auf ***xx gesetzt werden.
    Uff, jetzt geht es!
    Viele Grüße,
    Nicole

  5. Upps, der Code war wohl nicht so sinnvoll …
    ALLE habe ich auf ***xx gesetzt.

    Aber die Fehlermeldung (Extension-Manager) mit “Update needed” habe ich immer noch …

    Gute Nacht,
    Nicole

  6. Hi Nicole! Die Fehlermeldung mit dem Primary Key ist nicht schlimm, die habe ich auch noch… keine Ahnung, ob TYPO3 Probleme mit zusammengesetzten Schlüsseln hat (sind ja zwei Spalten als Schlüssel definiert).

  7. Hallo Stefan,

    auf manchen Listen, wie z.B. Current Birthays, Telefonliste etc. zeigt er vor dem Namen immer die Position. Kann man das per TS ausschalten oder muß ich das im php code eliminieren? Wenn ich dort bei “Link name to detail site” das Häkchen rausnehme wird der Name trotzdem noch weiterhin verlinkt. Gibts da auch ein surrounding für?

    Dank und Gruß

    Jens

  8. Hi Jens.
    Die Position dürfte nur erscheinen, wenn du sie explizit in die Liste der zu zeigenden Felder aufnimmst. Die Position steht nirgends auf der Default-Liste.
    Und bei mir funktioniert das Häkchen zum Verlinken der Namen ganz normal. Hast du auch wirklich die richtige Seite konfiguriert? Sonst kann ich es mir nicht erklären…

  9. Hallo Stefan,

    Habs rausgefunden. es lag daran, daß der Titel (den wir vorher auch als Stellenbezeichnung gewählt hatten) mit in der Bezeichnung von “fullname” stand.
    Gibt es eine Möglichkeit den upload folder für die images per TS zu setzen?

    Dank und Gruß

    Jens

  10. @Jens: Den Upload-Ordner kann man leider nicht ändern 🙁 Da hatte ich so meine Probleme bei der Entwicklung (Schreibrechte etc.). Aber du könntest in der Datei class.smEmployee.php ab Zeile 292 den Pfad manuell ändern…

  11. Ok ich hab hier mal eine Lösung, für die die auf der Suche nach der Funktionalität sind:
    in class.smEmployee.php Zeile:

    $imgDir = $this->c['imgDirs.']['image'];
    mit
    $imgDir = $this->c["uploadfolder"];

    ersetzen

    in der setup datei kann man nun per TS so den Folder bestimmen, wo er seine Bilder suchen soll unds zwar so:

    plugin.tx_smemployeelist_pi1.uploadfolder = fileadmin/user_upload/mitarbeiterfotos/
    (oder wie auch immer der Pfad sein sollte

    —–hier noch ein paar zusätzliche Anpassungen die ich vorgenommen habe, vielleicht für den ein oder anderen interessant.
    ————————-
    Title aus Fullname rausnehmen:in class.smEmployee.php

    if (!$withoutTitle && ($this->title != ''))
    {
        $returnValue = $this->title . ' ';
    }

    auskommentieren oder löschen
    ————————-
    email klickbar machen:function GetEmail in class.smEmployee.php wie folgt anpassen:

    public function GetEmail()
    {
        return '<a href="mailto:'. $this->email .'">'. $this->email .'';
    }

    ————————-

    Gruß
    Jens

  12. Danke für die Hinweise (sie werden bestimmt bei der nächsten Version berücksichtigt 😉

  13. Hallo,

    ich habe ein kleines Problem mit der Extension, weiss aber nicht genau, ob ich hier an der richtigen Stelle bin. Vielleicht gibts ja ne FAQ-Seite, die ich noch nicht gefunden hab?

    Ich bekomme die Fehlermeldung:
    Warning: strftime() expects parameter 2 to be long, string given in (PFAD)\typo3conf\ext\sm_employeelist\classes\class.smEmployee.php on line 762

    Wenn ich keine Daten wie z.B. Geburtstag anzeigen lasse, kommt auch keine Fehlermeldung. Ich habe die Datumsangaben in den entsprechenden Feldern schon auf jede erdenkliche Weise eingetragen, der Fehler bleibt.

    Über eine kurze Rückmeldung würde ich mich sehr freuen.

    Gruß
    Roy

  14. @Roy: Datumswerte müssen im Format YYYY-MM-DD eingegeben werden.

  15. Hallo Herr Macke,

    erstmal vielen Dank für die super Extension. Ich nutze diese um für unseren Musikverein im Vorfeld die Anwesenheit der verschiedenen Musiker (Sätze/Instrumente) zu erfragen ….

    Nun habe ich folgendes Problem/ Frage: Ich habe mittlerweile die Stelle gefunden an der festgelegt wird, wie die Einträge in der Teilnehmerliste sortiert werden und zwar in der smEventlist.php an der Stelle:

    $this->employees = smTools::SortObjectArray($e->GetEmployees($this->plugin), ‘fullname’);

    An dieser Stelle würde ich jetzt die Mitarbeiter/ Musiker gerne zuerst nach der Usergroup (diese stellen die unterschiedlichen Register dar) und danach alphabetisch innerhalb der Register sortieren.
    Kleines Beispiel:

    Klarinetten
    Anna
    Claudia
    Steffi

    Trompeten
    Christian
    Markus
    Thomas

    Dies ist erforderlich um sehen zu können ob in jedem Register jede Stimme ausreichend besetzt ist. Werden alle Musiker (über 65 Stück) nacheinander alphabetisch gelistet ist das äußerst kompliziert.

    Ich habe versucht die beiden Kritierien über ein & zu verketten. Dies funktionierte aber leider nicht. Habe Sie vielleicht einen Tipp für die Lösung des Problems – habe leider keine wirklichen Programmierkenntnisse!? (Die Registernamen (Usergroup) muss nicht zwingend mit ausgegeben werden.)

    Über eine Rückmeldung wäre ich sehr erfreut – Vielen Dank im Voraus

    Gruß
    Thomas

  16. @Radke: Mh… die Sortierung bekommen Sie nur mit Programmieraufwand hin. In der neuen Version 2.0, die bald (1-2 Monate) erscheint wird es eine Möglichkeit geben, nach mehreren Kriterien hintereinander zu sortieren.

  17. Hallo Stefan,

    es sieht in den ersten Screenshots der Doku so aus (A department list.), als könnte man eine Abteilung z.B. per Flex-Form vorselektieren und dann nur noch die Mitarbeiter dieser Abteilung anzeigen.
    Ich habe schon einiges ausprobiert, aber leider habe ich das nicht hinbekommen.

    Wird das von Deiner Extenstion untersützt?

    Hintergrund ist, dass ich auf speziellen Team-Seiten die entsprechenden Team-Mitarbeiter anzeigen möchte und dazu einfach im Plugin das Team auswählen möchte.

    Danke im voraus für die Antwort.

    Gruß,
    Chris

  18. @Chris: Nein, das geht nicht. Aber du könntest einfach einen Link zur Abteilungsloste mit der angehängten Department-ID dafür nutzen…

  19. Hi Stefan,

    Danke für Deine Antwort. Ich definiere nun per Template die Team-ID und frage im Code ab ob diese gesetzt ist, wenn ja: Anzeigen des vordefinierten Teams.
    Lieder funktioniert das nur bis zum nächsten Update, aber so viel Mühe hat das ja nicht gemacht. 🙂

    Gruß,
    Chris

  20. Hallo,

    bin Student und muss im Rahmen einer Seminararbeit für eine Forschungsgruppe an unserer UNI eine Website in Typo3 umsetzten. Um das Team darzustellen, bin ich auf Deine Extension gestoßen. Macht für mich als absoluter Typo3-Beginner echt nen sehr guten Eindruck. Habe auch schon ein wirklich ansehnliches Ergebnis hin bekommen. Nun habe ich – ein aus Profisicht wahrscheinlich triviales Problem – ich bekomme es einfach nicht hin die Liste sauber zu sortieren. D.h. der Prof. als Lehrstuhlleiter taucht nicht ganz oben auf sondern irgendwo zwischen uns HiWi’s. Das geht natürlich nicht 😉 … Wollte die Liste einfach standardmäßig nach ID sortieren. Aber so wie ich es verstanden habe ist das Feld “orderByFields” lediglich dazu da, anzugeben nach welchen Spalten sortiert werden kann, wenn die Option “sortieren nach Spalten” true ist, oder?! Wäre Dir wirklich sehr dankbar, wenn Du mir einen Tipp geben könntest wie ich eine statische Sortierung nach ID (oder einem etwas besser geeignetem numerisches Feld, falls es dieses gibt) zu Stande bringe. Gibt es die Version 2.0 von der Extension eigentlich schon? Ich benutze gerade 1.1.0 von typo3.org.

    Vielen Dank für Deine Antwort

    Gruß Jonathan

  21. @Jonathan: Dafür gibt es extra die neu eingeführten “Positionen”. Du könntest den Professoren eine Position “Professor” mit hoher Priorität geben und schon sollten sie in der Liste oben erscheinen (und sogar rot hinterlegt ;-).

    Die Version 2.0 ist schon seit laaaanger Zeit in Arbeit, aber ich habe im Moment keine Zeit um sie abzuschließen…

  22. Hallo Stefan,

    danke für Tipp, irgendwie klappt das aber leider bei mir nicht so richtig. Ich habe jetzt verschiedene Positionen definiert und den Benutzern entsprechend zugeordnet:
    Leiter 99
    Mitarbeiter 89
    HiWi 49
    Tutor 39
    Student 29

    In der Mitarbeiterliste wird dies aber leider vollkommen ignoriert. D.h. es findet keine Sortierung statt. Muss ich vielleicht noch irgendwo hinterlegen, dass für die Sortierung die Positionen verwendet werden sollen? Prinzipiell geht es ja schon: Ich bekomme alles genau so hin, wie es aussehen soll, wenn ich eine weitere Spalte „Positions“ einfüge, durch den Eintrag „list.orderByFields = positions“ im Template angebe, dass nach dieser sortiert werden kann und dann zweimal auf den Header klicke. Aber wie geht das automatisch?

    Oder geht das wirklich nur in der Abteilungsliste? Hier habe ich nämlich ein weiteres Problem: Sobald ich den Listentyp auf „Abteilungsliste“ umstelle, bekomme ich nur die Abteilungen aufgelistet. Ein Klick auf die eine Abteilung öffnet allerdings keine Übersicht der Mitarbeiter. Es passiert einfach gar nichts. Eigentlich sollte sich die Liste im selben Fenster öffnen, da ich bei den globalen Einstellungen nichts anderes angegeben habe.
    Wie bekomme ich direkt nur die Liste der (nach Positionen geordneten) Mitarbeiter einer Abteilung (ohne eine Übersicht der einzelnen Abteilungen) angezeigt? Hast Du da evtl. einen passenden Scriptcode für? Wäre Dir wirklich sehr dankbar.

    Noch ein paar kleine Fragen:
    1. Ich denke mal, dass die Spaltenüberschriften in irgendeiner Tabelle hinterlegt sind. Kannst Du mir sagen welche das ist, damit ich die Überschriften anpassen kann?
    2. Gibt es eine Möglichkeit die Angabe „Number of emplyees“ unter der Mitarbeiterliste auszublenden? Im Notfall müsste ich sie per CSS auf die Hintergrundfarbe angleichen aber das ist ja eigentlich nicht so die „saubere“ Variante.
    3. Die Spalte Titel wird bei mir nur angezeigt, wenn die Checkbox „Namen mit Detail-Seite verlinken“ gesetzt ist. Habe ich da irgendetwas falsch gemacht oder ist das ein Bug?

    Vielen Dank und schönen Gruß

    Jonathan

  23. @Jonathan: Du hast Recht, man kann tatsächlich nicht so ohne Weiteres nach Prioriät sortieren… da wäre ein kleiner hässlicher Hack nötig: die folgende Zeile am Ende der Methode smEmployeeList::ReadEmployees() einfügen: $this->employees = smTools::SortObjectArray($this->employees, 'priority', true);. Ist aber seeeeehr langsam 🙁

    1) Die Übersetzungen stehen alle in der locallang_db.php.
    2) Auch das geht in der aktuellen Version leider noch nicht. Das müsstest du manuell in smEmployeeList::GetFooter() ändern.
    3) Naja, ich würde das nicht als Bug bezeichnen 😉 Du kannst es ändern in smEmployeeList::RenderField(): nach dem case 'fullname': fügst du $returnValue = $this->currentEmployee->GetFullname(false, false); ein.

  24. Danke schön, dass sind doch zumindest mal Anhaltspunkte 🙂 … Werde mich Anfang nächste Woche mal hin setzten und versuchen es über die “Hacks” hinzubekommen. Wird eh mal Zeit sich etwas mit PHP auseinander zu setzen. Das mit dem Footer war übrigens gar kein Problem einfach visible:hidden in CSS 😉

    Schönen Gruß
    Jonathan

  25. Hallo allesamt,
    falls jemand die spam protection bei den emails aktivieren will (damit email adressen als bla[at]bla[dot]de dargestellt werden) geht das so:
    In Zeile 508 das “return $this->email;” in
    “return $this->plugin->cObj->getTypoLink($this->email,$this->email);” ändern.
    Im mainTemplate müsst ihr dann noch im Setup
    config.spamProtectEmailAddresses = 2
    config.spamProtectEmailAddresses_atSubst = [at]
    config.spamProtectEmailAddresses_lastDotSubst = [dot]
    einfügen, falls ihr das noch nicht habt.
    Hoffe ich konnte damit jemandem helfen^^
    Gruß
    Dominic

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax