Artikel kopieren

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • kozi
    Contao-Nutzer
    • 06.12.2010
    • 68

    #1

    Artikel kopieren

    Ich möchte in einer Erweiterung von mir einen bestimmten Artikel kopieren.

    D.h. meine Erweiterung soll mit der ID eines Artikels den Artikel und die Inhaltselemente in eine andere Seite kopieren.
    Gibt es eine Methode, die diese Funktion bereitstellt, da diese Funktion ja im Backend vorhanden ist?
  • xtra
    Maintainer
    • 02.07.2009
    • 2007

    #2
    Die von dir genannte Aktion wird im Backend durch aufrufen der DCA funktionen copy und paste erledigt. Will jedoch dazu dann Benutzerinteraktion.

    Einfacher geht es, wenn du die entsprechende Zeile aus tl_article duplizierst und anschliessend die childs aus tl_content ebenfalls duplizierst und denen die pid deiner Artikelkopie verpasst.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

    Kommentar

    • kozi
      Contao-Nutzer
      • 06.12.2010
      • 68

      #3
      Zitat von xtra Beitrag anzeigen
      Die von dir genannte Aktion wird im Backend durch aufrufen der DCA funktionen copy und paste erledigt. Will jedoch dazu dann Benutzerinteraktion.
      Wo findet das denn genau statt? Kann ich das nicht auch irgendwie programmatisch lösen?
      Zitat von xtra Beitrag anzeigen
      Einfacher geht es, wenn du die entsprechende Zeile aus tl_article duplizierst und anschliessend die childs aus tl_content ebenfalls duplizierst und denen die pid deiner Artikelkopie verpasst.
      Das habe ich mir auch schon überlegt. Allerdings dachte ich dass es evtl. mit den Systemfunktionen einfacher geht und man dann auch nichts vergisst, da die Funktionen natürlich schon getestet sind.

      Kommentar

      • kozi
        Contao-Nutzer
        • 06.12.2010
        • 68

        #4
        Zitat von xtra Beitrag anzeigen
        Einfacher geht es, wenn du die entsprechende Zeile aus tl_article duplizierst und anschliessend die childs aus tl_content ebenfalls duplizierst und denen die pid deiner Artikelkopie verpasst.
        Wie geht das genau? Gibt es die SQL-Statements irgendwo im Quelltext? Dann bräuchte ich die nicht selbst zusammenschrauben.

        Kommentar

        • kozi
          Contao-Nutzer
          • 06.12.2010
          • 68

          #5
          ContentElemente aus dem Artikel 119 in den Artikel 133 kopieren

          Code:
          CREATE TABLE temp_tl_content like tl_content;
          INSERT INTO temp_tl_content SELECT * FROM tl_content WHERE pid = '119';
          ALTER TABLE temp_tl_content CHANGE id id INT(10) UNSIGNED NULL;
          ALTER TABLE temp_tl_content DROP PRIMARY KEY;
          UPDATE temp_tl_content SET pid = 133, id = NULL WHERE 1;
          INSERT INTO tl_content SELECT * FROM temp_tl_content WHERE 1;
          Oder geht es viel einfacher?!?

          Kommentar

          • kozi
            Contao-Nutzer
            • 06.12.2010
            • 68

            #6
            Äh....so:
            Code:
            CREATE TEMPORARY TABLE temp_tl_content like tl_content;
            INSERT INTO temp_tl_content SELECT * FROM tl_content WHERE pid = '119';
            ALTER TABLE temp_tl_content CHANGE id id INT(10) UNSIGNED NULL;
            ALTER TABLE temp_tl_content DROP PRIMARY KEY;
            UPDATE temp_tl_content SET pid = 133, id = NULL WHERE 1;
            INSERT INTO tl_content SELECT * FROM temp_tl_content WHERE 1;
            DROP TEMPORARY TABLE temp_tl_content;

            Kommentar

            Lädt...