Posts by coolworx

    Seit Jahren erzeuge ich die (Unter-)Seiten einer Webpräsenz mit Objekten, statt mit Dokumenten.

    Aktuell bin ich eine einer Multidomain-Installation und musste feststellen, dass Objekte mit gleichnamiger URL (URL-Feld 1) trotz verschiedener Klassen und verschiedener Arbeitsbereiche (zumindest derzeit) nicht möglich sind. Es kommt immer die Meldung, dass die gewünschte URL bereits besteht.

    Beispiel:

    Für beide Domains soll es z. B. eine Seite "Datenschutz" (URL-Feld 1) geben

    Klasse 1 (Seiten_Domain_1)
    Voreinstellung für die Darstellung: /domain1/index.php
    Arbeitsbereich: /domain1
    Vorlage: /domain1/templates/seiten

    Klasse 2 (Seiten_Domain_2)
    Voreinstellung für die Darstellung: /domain2/index.php
    Arbeitsbereich: /domain2
    Vorlage: /domain2/templates/seiten

    Meine Annahme, dass gleichlautende URLs in einer Multidomain-Installation immer dann möglich sind, wenn diese in verschiedenen (der jeweiligen Domain zugeordneten) Arbeitsbereichen angesiedelt sind, trifft wohl nicht zu.

    Daher die Frage, ob es sich hier u. U. um einen Bug (WE 10.0.4.0) handelt?
    Gibt es hier evtl. Erfahrungen, wie der vorgenannte Weg dennoch umgesetzt werden kann?

    Hallo Matze,

    Deine Fragestellung ist tatsächlich sehr allgemein. webEdition stellt Dir für das, was Du machen willst, alles zur Verfügung und im Prinzip hast Du doch schon erkannt, mit welchen we:tags das ganze funktioniert.

    we:form, we:write, we:ifWritten, und im Kundenbereich auch we:userInput

    Schaue Dir diese Tags doch einfach nochmal an. Fertige Lösungen gibt es hier nicht. Hier ein ganz grobes Beispiel:

    Ohne es genau zu wissen, vermute ich, dass die Zeichenübermittlung in den Textboxen von webEdition nicht korrekt interpretiert werden kann (Emojis sind keine html-entities?).

    Einen Filter schließe ich aus, denn ich kann mir nicht vorstellen, dass ein solcher eingebaut wäre.

    Hast Du denn mal probiert, ob das manuelle Einsetzen eines Emojis in eine Textbox mit wysiwyg="true" zum gleichen oder einem anderen Ergebnis führt?

    Hallo Heiko,

    wir machen so etwas ähnliches mit Galerieordnern, die angelegt werden müssen.

    Du könntest am oder vor dem Import der News mit php abfragen, aus welchem Jahr und welchem Monat die News stammt und dann per php ein Verzeichnis anlegen, dessen ID dann als parentID für das zu erzeugende oder zu speichernde News-Dokument angelegt wird.

    Die Variable $IDcurrentNews wäre dann das Verzeichnis (ID), in das die betreffende News abgelegt wird.
    Allerdings müsstest Du noch klären, wie Du verfährst, wenn für den gleichen Monat ein zweite oder gar dritte News importiert werden würde.

    Ich habe das jetzt alles mal so runtergeschrieben - also keine Garantie für einwandfreie Funktion. Sollte auch nur eine kleine Hilfestellung sein.

    Ach ja, und updatesicher ist das selbstredend nicht!!!

    Bei einem oder zwei betreffenden Feldern könnte man das zumindest so abfangen, dass der böse Code nicht innerhalb von <script></script> steht, indem man die Tags per PHP entfernt. Bei vielen Feldern ist das natürlich ein entsprechender Mehraufwand...

    <we:var type="request" name="we_ui_formname[meinFeld]" nameto="tempFeld" to="local" />
    <?php
    $search = array("<script>","</script>");
    $replace = array("","");
    $modified = str_replace($search, $replace, $tempFeld);

    $_REQUEST['we_ui_formname']['meinFeld']=$modified;
    ?>
    <we:write type="object" classid="" formname="formname" publish="true" ... />

    Hallo an alle Teilnehmer der webEdition Intensivtage,

    ich freue mich auch im Namen des gesamten Vorstandes über das positive Feedback, zumal wir dieses Mal eine etwas übersichtlichere Runde gebildet haben. Das hat unserem Austausch jedoch keinen Abbruch getan und wir hatte eine schöne und vor allem informative Zeit.

    Ich verspreche hoch und heilig, dass es beim nächsten Mal kein Guinness mehr geben wird, dafür aber ums so mehr Primitivo. ;)

    Seltsam. Bei mir funktioniert es einwandfrei:
    WE 9.3.1 PHP 8.3.15
    Seite ist als Objekt erstellt. Ich vermute, dass bei Christoph die Arbeitsbereiche evtl. nicht korrekt eingestellt sind, oder in den Einstellungen die SEO-URLs

    Nach dem Absenden von

    https://domain.tld/de/kontakt
    wird
    https://domain.tld/de/kontakt#meldung

    aufgerufen

    Hallo Martin,

    ich nehme an, dein Code stammt aus einer Version 9.2.3?

    Ich habe mal unsere Suche angeschaut. Diese funktioniert einwandfrei.
    Hast Du es mal mit einem Rebuild der Index-Tabelle probiert?

    <we:ifSearch name="search" set="true">
        <we:ifVarEmpty name="search" type="global">
            <span class="headline gradient">Du hast keinen Suchbegriff eingegeben</span>
            <we:form type="search" name="search" method="post" id="self">
                <we:search type="textinput" class="input i100 bbx" maxlength="80" placeholder="Gib hier Deinen Suchbegriff ein" name="search" />
            </we:form>

            <we:else />

            <we:listview type="search" name="search" classid="2" casesensitive="false">
                <we:ifFound>
                    <we:listviewRows to="global" nameto="results" />

                    <span class="headline gradient">Gefunden für <em>"<we:search type="print" name="search" />"</em> - <we:var name="results" type="global" /> Treffer</span>            
                    <we:repeat>

                        <we:field name="we_id" to="global" nameto="objectID" />
                        <we:object id="\$objectID">
                            <we:include id="159" type="template" name="profilpic-inc" />
                        </we:object>

                    </we:repeat>

                    <we:else />

                    <span class="headline gradient">Kein Ergebnis für Deinen Suchbegriff</span>

                    <we:form type="search" name="search" method="post" id="self">
                        <we:search type="textinput" class="input i100 bbx" maxlength="80" placeholder="Neue Suche" name="search" value="" />
                    </we:form>

                </we:ifFound>
            </we:listview>
        </we:ifVarEmpty>
    </we:ifSearch>

    Hallo Sascha,

    yep, habe mir das ganze jetzt auch noch einmal angeschaut und auch noch einmal getestet. Du hast Recht, ohne $obj->resetParentID() , das tatsächlich nicht ausgeführt wird, scheint das gesamte Konstrukt nicht zu funktionieren. Sieht nach einem Bug aus. Ich trage das einfach mal in die Bugbase ein.

    Das SQL-Statement bleibt unverändert.

    Hallo Sascha,

    danke für den Hinweis, aber das hatte ich alles schon geprüft. Zwischenzeitlich bin ich mir 100%ig sicher, dass

                    $obj->resetParentID();
                    $obj->ParentID = 1729;

    aktuell definitiv nicht (mehr) ausgeführt wird. Aufgrund fehlender Hinweise sowohl im wE-Log, als auch im Serverlog habe ich keinerlei Ansatzpunkte. Ich versuche jetzt noch, mir die entspr. Klasse rauszusuchen und zu schauen, was darin enthalten ist.

    Hallo zusammen,

    bisher habe ich (bis Version 9.2.2) nachstehenden Script in einem Cronjob erfolgreich eingesetzt.

        <we:listview type="object" classid="7" name="hlw" condition="oldHLW">
            <we:ifFound>
                <we:repeat>
                    HLW_OBJECT: <we:field name="we_id" />
                    <we:field name="we_id"  nameto="IDpark7" to="local" />
                    <?php
                    $obj = new we_contents_objectFile();
                    $obj->initByID((int)$IDpark7);
                    // Objekt in neues Verzeichnis verschieben
                    $obj->resetParentID();
                    $obj->ParentID = '1729';
                    $obj->we_save();
                    $obj->we_unpublish();
                    ?>
                </we:repeat>
            </we:ifFound>
        </we:listview>

    Leider funktioniert das Verschieben in ein anders Verzeichnis in 9.2.3 nicht mehr. Ist irgendetwas an den Parametern verändert worden? Gibt es evtl. einen Workaround?

    Hallo Christoph,

    das Problem hatte ich auch schon. Du könntest die Werte in der tblCaptchaDef einmal löschen und das Formular im Frontend noch einmal aufrufen. Danach müssten Deine Änderungen, die Du im Template gemacht hast, greifen

    Hallo,

    in dem von Marc erwähnten Bugfix ging es um die Felder

    we:userInput type="select"

    we:sessionField type="select"

    Hier war das Problem, dass es keine Möglichkeit gab, ein "Bitte Auswählen" zu platzieren, das nun in den genannten we-Tags mittels Attribut "Placeholder=xy" möglich ist.

    Hierfür gab es auch einen guten Grund, und zwar, dass viele User über das Selectfeld mehr oder weniger gestolpert sind bzw. keine (notwendige) Auswahl getroffen haben und den Inhalt, so wie er ist, einfach übernommen haben, was in vielen Fällen letztlich zu einem nicht korrekten Datensatz führte.

    Was das i. d. F. für das Tag we:formfield bedeutete, kann ich nicht beurteilen, da ich das noch nie eingesetzt habe.