Posts by Finn

    Moin Martin,
    damit alle was von der Antwort haben, einmal hier:

    Im Prinzip ist es so, wie Nils schon gesagt hat, da dein Template ja Teil einer bestehenden Funktion ist, musst du an der Stelle mit define anstelle von const arbeiten.

    Und zusätzlich fehlte noch eine schließende ")" Klammer.

    strict_types darf an der Stelle auch nicht gesetzt werden.

    Ich habe das Dokument erstmal geparkt, damit da keine Tokens verbraucht werden.

    Ich hänge mich eben dran, weil es passt (finde ich): Wie greife ich auf die OF_ID des Elternobjekts zu? Das Feld OF_ID kommt ja in allen Objekten vor.

    Also ich habe die 2 Objekte Kunde und News, und News hat ein Feld /Kunde (intern in der DB object_1)

    Für den Fall gibt es kein <we:field>, oder übersehe ich was?

    Beziehst du dich auf eine Listview oder auf eine SEO-Objektansicht?

    Hallo Silvia,

    das Verhalten ist erklärbar: <we:ifObject classid="3"> innerhalb von <we:repeat> filtert die Treffer nicht, sondern prüft nur pro Treffer, ob es sich um ein Objekt der Klasse 3 handelt und gibt dann zusätzlich die Description aus. Die Suche selbst liefert weiterhin alle Objektklassen.

    Die Filterung gehört direkt in den Listview-Tag:

    Code
    <we:listview type="search" name="suche" rows="20" order="Title" classid="3">

    Damit werden allerdings nur noch Objekte der Klasse 3 durchsucht.

    Für Dokumente und Objekte müsstest du irgend sowas bauen...

    Code
    <we:repeat>
        <we:ifDocument>
            <li>… Ausgabe Dokument …</li>
        </we:ifDocument>
        <we:ifObject classid="3">
            <li>… Ausgabe Objekt …</li>
        </we:ifObject>
    </we:repeat>

    Wichtiger Hinweis dazu: Bei dieser Variante stimmen Trefferzähler und Paginierung (rows="20", we:listviewStart/End) nicht mehr, weil die ausgefilterten Objekte mitgezählt werden. Das würde auch in deiner Variante so nicht klappen. Deshalb ist das classid-Attribut am Listview die sauberere Lösung, eventuell mit zwei Listviews hintereinander, einer für Dokumente und einer für Objekte oder mit PHP.

    LG
    Finn

    Edit:

    Wenn du die Doctypes definiert hast, sollte glaube ich auch sowas gehen:
    <we:listview type="search" name="suche" rows="20" order="Title" doctype="Standard" classid="3">

    Moin Moin,

    mit prePublishDate wirst du an der Stelle nicht weiterkommen.

    webEdition merkt sich pro Dokument/Objekt genau einen Veröffentlichungs-Zeitstempel: das Feld Published in tblObjectFiles (bzw. tblFile für Dokumente). 0 heißt „nicht veröffentlicht", alles andere ist der Timestamp der letzten Veröffentlichung. Beim Parken wird das Feld wieder auf 0 gesetzt, vorherige Information ist damit weg.

    ich würde in der Klasse ein Feld anlegen, z. B. firstPublished und dieses als Referenz nutzen.
    Man könnte eventuell irgendwas mit den Versionen versuchen, aber ich glaube mit dem Feld bist du schneller dran.

    Hey,

    Ich habe folgendes dazu in der Tag Referenz gefunden:

    Falls das nicht geht, wäre sicherlich interessant welche wE Version du verwendest.

    Alternativ kannst du noch probieren Name+E-Mail als Variable an <we:sendMail/> zu übergeben.

    Liebe Grüße,
    Sascha

    Das sollte die Lösung sein.

    Moin Uwe,

    für die Darstellung würde ich JS empfehlen.


    Die benötigten Daten kannst du dann mit einem Listview übergeben.


    Mit https://fullcalendar.io/ z.B. lassen sich dann Ansichten wie im Screenshot umsetzten.


    In diesem Fall lädt sich das Script die Daten von einem json Endpunkt.

    Datei: webEdition/we/include/we_classes/contents/we_objectFile.class.php

    Zeile 47-55

    $this->EditPageNrs = array_merge($this->EditPageNrs, [
    we_base_constants::WE_EDITPAGE_PROPERTIES,
    we_base_constants::WE_EDITPAGE_INFO,
    we_base_constants::WE_EDITPAGE_CONTENT,
    we_base_constants::WE_EDITPAGE_WORKSPACE,
    we_base_constants::WE_EDITPAGE_PREVIEW, // ← diese Zeile entfernen
    we_base_constants::WE_EDITPAGE_VARIANTS,
    we_base_constants::WE_EDITPAGE_VERSIONS,
    we_base_constants::WE_EDITPAGE_SCHEDULER
    ]);

    Ich habe das nicht getestet. Aber in die Richtung könntest du schauen.

    Ja funktioniert tatsächlich. Nur was ist eigentlich wenn es die gleiche Feldbezeichung in beiden Objekten gibt? Oder ich mehrere Unterobejkte mit der selben Feldbezeichnung gibt?

    Das ist nicht möglich. Klassen, deren Objekte verlinkt werden können, werden auf diesen Fall geprüft.

    Moin Christoph,
    das we:write schreibt nur, wenn der entsprechende edit Parameter gesetzt ist. Das wird auf der Detailseite nicht der Fall sein.

    Ja man kann Tricksen, ganz viel sogar.

    Du kannst die Objekte auch direkt mit PHP schreiben (nicht Updatesicher) du kannst auch mit PHP einen Request bauen, der an einen geschützten Endpunkt geht, welcher dann we:write ausführt.

    Du könntest auch in der Detailseite einen iFrame zum Bearbeiten öffnen, welcher den Editlink aufruft, so bleibst du auf der entsprechenden Seite.

    Also Möglichkeiten gibt es viele, die alle mehr oder weniger elegant sind. Was spricht gegen eine extra Edit-Seite?