1. Dashboard
  2. Articles
  3. Forum
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • More Options
  1. webEdition Forum
  2. Forum
  3. Deutschsprachiges Support Forum
  4. webEdition Templates erstellen (we:tags)

Objekte mit php in ein anderes Verzeichnis verschieben

  • coolworx
  • May 13, 2024 at 10:57 AM
1st Official Post
  • coolworx
    Moderator
    Reactions Received
    3
    Posts
    46
    • May 13, 2024 at 10:57 AM
    • Official Post
    • #1

    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?

    Viele Grüße
    Ulrich

    coolworx

    https://www.coolworx.de

    • Next Official Post
  • Finn
    Administrator
    Reactions Received
    12
    Posts
    295
    • May 13, 2024 at 12:05 PM
    • Official Post
    • #2

    Moin Uli,
    hast du ne Fehlermeldung?

    https://www.wg-werbeagentur.de

    • Previous Official Post
    • Next Official Post
  • coolworx
    Moderator
    Reactions Received
    3
    Posts
    46
    • May 13, 2024 at 12:10 PM
    • Official Post
    • #3

    Hallo Finn,

    leider nein.

    Viele Grüße
    Ulrich

    coolworx

    https://www.coolworx.de

    • Previous Official Post
    • Next Official Post
  • mokraemer
    Senior Member
    Reactions Received
    13
    Posts
    162
    • May 14, 2024 at 9:52 AM
    • Official Post
    • #4

    $obj->ParentID = '1729';

    Das sollte einen Fatal Error auslösen. Es muß

    $obj->ParentID = 1729;

    heißen. Und das

    $obj->we_save();

    solltest du weglassen können, wenn du eh ein Publish machst.

    • Previous Official Post
    • Next Official Post
  • coolworx
    Moderator
    Reactions Received
    3
    Posts
    46
    • May 14, 2024 at 11:38 AM
    • Official Post
    • #5

    Hallo Marc,

    $obj->ParentID = '1729';
    Löst keinen Fatal Error aus.

    Die einfachen Anführungszeichen habe ich ebenfalls entfernt, ebenso das obj->we_save().
    Dennoch werden die Objekte lediglich geparkt, nicht aber in das vorgesehene Verzeichnis geschoben.

    Viele Grüße
    Ulrich

    coolworx

    https://www.coolworx.de

    • Previous Official Post
    • Next Official Post
  • WBTMagnum
    Student
    Reactions Received
    14
    Posts
    163
    • May 14, 2024 at 1:04 PM
    • #6

    Hallo Ulrich,

    Schau dir doch mal die Objektdaten in der Datenbank an. Was wird da gesetzt, wenn du deinen Code ausführst? Kann es sein, dass du ev. noch den Path bzw. Parent explizit setzen musst?

    Ev. hilft auch ein Blick in den webEdition Source Code. Objekt können ja auch verschoben werden, dh. dazu muss es ja schon eine entsprechende Code-Stelle geben von der man abkupfern kann.

    Liebe Grüße,
    Sascha

  • coolworx
    Moderator
    Reactions Received
    3
    Posts
    46
    • May 15, 2024 at 1:42 PM
    • Official Post
    • #7

    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.

    Viele Grüße
    Ulrich

    coolworx

    https://www.coolworx.de

    • Previous Official Post
    • Next Official Post
  • WBTMagnum
    Student
    Reactions Received
    14
    Posts
    163
    • May 15, 2024 at 2:11 PM
    • #8

    Hallo Ulrich,

    Ich habe kurz in den wE Code geschaut. In der Klasse we_base_move.class.php wird neben der $obj->ParentID auch der $obj->Path gesetzt. $obj->resetParentID() wird allerdings nicht ausgeführt.

    Ein paar Zeilen darunter wird dann noch die OBJECT_FILES_TABLE mit einem SQL Statement aktualisiert.

    HTH,
    Sascha

  • coolworx
    Moderator
    Reactions Received
    3
    Posts
    46
    • May 15, 2024 at 3:03 PM
    • Official Post
    • #9

    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.

    Viele Grüße
    Ulrich

    coolworx

    https://www.coolworx.de

    • Previous Official Post

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login

Donations

200.00 EUR

Donate now
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™