Eine komplete Rubrik in eine andere Rubrik kopieren

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Antworten
Benutzeravatar
Rappi
ConPresso-User
Beiträge: 97
Registriert: 05.05.2006 11:15
Wohnort: Magdeburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 1 Mal

Eine komplete Rubrik in eine andere Rubrik kopieren

Beitrag von Rappi »

Guten Morgen,

ich habe mal wieder ein Problem, ich habe 2 Rubriken Sommersemester und Wintersemester. Nun muss ich den Inhalt aus dem Wintersemester in die Rubrik Sommersemester kopieren, wobei die alten Daten aus dem Sommersemester gelöscht werden sollen.

Hat jemand eine Idee wie ich sowas anstellen kann.


Gruß
Marko Rappholz
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hallo Rappi,

um wie viele Artikel geht es denn? Lassen sich die manuell verschieben?

Balu
Benutzeravatar
Rappi
ConPresso-User
Beiträge: 97
Registriert: 05.05.2006 11:15
Wohnort: Magdeburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 1 Mal

Beitrag von Rappi »

Danke für die schnelle Antwort.

ca. 300 Artikel.


Gruß
Marko Rappholz
Tor3
ConPresso-User
Beiträge: 82
Registriert: 11.12.2006 13:02
Danksagung erhalten: 5 Mal

Beitrag von Tor3 »

Könte man nicht einfach "Sommersemester" löschen, "Wintersemester" in "Sommersemester" umbenennen und "Wintersemester" neu anlegen???

Oder sollen beide Rubriken dann alle Artikel erhalten? Also tatsächlich kopieren und nicht verschieben?
Benutzeravatar
Rappi
ConPresso-User
Beiträge: 97
Registriert: 05.05.2006 11:15
Wohnort: Magdeburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 1 Mal

Beitrag von Rappi »

Tor3 hat geschrieben:Könte man nicht einfach "Sommersemester" löschen, "Wintersemester" in "Sommersemester" umbenennen und "Wintersemester" neu anlegen???

Oder sollen beide Rubriken dann alle Artikel erhalten? Also tatsächlich kopieren und nicht verschieben?
Nein, die Artikel müssen in der Rubrik Wintersemester vorhanden bleiben. Also tatsächlich kopieren.

Dies Wiederholt sich alle 6 Monate WS -> SS -> WS... usw.

Gruß
Marko Rappholz
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hallo,

nur nochmal zu Verstaendnis:

1. SS alle Artikel löschen
2. alle Artikel aus WS nach SS kopieren

richtig?

Das geht bestimmt mit einem passenden Script (etwas Arbeit, das zu erstellen), aber mir erschliesst sich noch nicht so ganz, wieso ihr dieselben Artikel immer wieder hin- und herkopieren wollt?

Balu
Benutzeravatar
Rappi
ConPresso-User
Beiträge: 97
Registriert: 05.05.2006 11:15
Wohnort: Magdeburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 1 Mal

Beitrag von Rappi »

balu hat geschrieben:1. SS alle Artikel löschen
2. alle Artikel aus WS nach SS kopieren

richtig?
Ja.
balu hat geschrieben:Das geht bestimmt mit einem passenden Script (etwas Arbeit, das zu erstellen), aber mir erschliesst sich noch nicht so ganz, wieso ihr dieselben Artikel immer wieder hin- und herkopieren wollt?
Das kommt daher, dass in den Rubriken die ganzen Studiengänge des Semesters abgelegt sind.
Diese werden aber ständig geändert bzw. ergähnst. Das bedeutet das ich pro Semester eine aktuelle Liste erstellen muss die leider immer auf das letzte Semester aufbaut.

Also muss ich auf Grundlage des Wintersemesters das Sommersemester aufbauen und aktualisieren usw.

Ich habe schon versucht die Funktionsweise von save_article() zu ergründen. Leider weis ich immer noch nicht wie ich mehrere Textfelder mit dem Array $data['content'] übergeben kann. :wall:


Gruß
Marko Rappholz
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Ola Rappi,

hast Du Dir schon einmal die Beschreibung im Wiki angeschaut?

http://wiki.conpresso.de/index.php/Main/SaveArticle

Da steht unten auch ein Beispiel. Willst Du mehrere Felder speichern, gibst Du sie einfach in der folgenden Form an:

Code: Alles auswählen

$data['content']['Feld 1 (html)']['html'] = 'HTML-Feld 1';
$data['content']['Feld 2 (html)']['html'] = 'HTML-Feld 2';
$data['content']['Feld 3 (text)']['text']   = 'Text-Feld 3';
Balu
Benutzeravatar
Rappi
ConPresso-User
Beiträge: 97
Registriert: 05.05.2006 11:15
Wohnort: Magdeburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 1 Mal

Beitrag von Rappi »

balu hat geschrieben:Ola Rappi,

hast Du Dir schon einmal die Beschreibung im Wiki angeschaut?

http://wiki.conpresso.de/index.php/Main/SaveArticle
Ja.
balu hat geschrieben:Da steht unten auch ein Beispiel. Willst Du mehrere Felder speichern, gibst Du sie einfach in der folgenden Form an:

Code: Alles auswählen

$data['content']['Feld 1 (html)']['html'] = 'HTML-Feld 1';
$data['content']['Feld 2 (html)']['html'] = 'HTML-Feld 2';
$data['content']['Feld 3 (text)']['text']   = 'Text-Feld 3';
Und der Aufruf bleibt save_article($data);
Wenn ja, dann verstehe ich es nicht aber werde es erstmal sohin nehmen und testen.

Danke!!!


Gruß
Marko Rappholz
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Rappi
ConPresso-User
Beiträge: 97
Registriert: 05.05.2006 11:15
Wohnort: Magdeburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 1 Mal

Beitrag von Rappi »

Ich habe nun folgendes Script geschrieben.

Wie kann ich dieses Script ins Backend einbinden? Am besten unter System eine Menüpunkt Rubrik kopieren.
Und wie kann ich diese Artikel automatisch freigeben?

Code: Alles auswählen

// Rubrik kopieren
$db_news = new DB;
$db_content = new DB;
$query_news = "SELECT * FROM ".CPO_NEWS
                      ." WHERE artikel_archiv=0 AND rubric_id = " .$source_rubric_id
                      ." ORDER BY ".$rubric_sorting;
$db_news->query($query_news);
while($db_news->next_record())  {
    $data = array();
    $data['rubric_id']    = $target_rubric_id;
    $data['titel']        = $db_news->v('titel');
    $data['templates_id'] = $db_news->v('templates_id');
    $data['autor']        = $db_news->v('autor');
    $data['email']        = $db_news->v('email');
    $data['initial']      = $db_news->v('initial');
    $data['changedBy']    = $_SESSION['SID_login'];
    $data['idx']          = $db_news->v('idx');
    $data['keywords']     = $db_news->v('keywords');
    $data['commentary']   = $db_news->v('commentary');
    $data['datum']        = date("Y-m-d H:i:s");
    $data['verfallsdatum']= $db_news->v('verfallsdatum');
    $data['releasedby']   = $_SESSION['SID_user']['id'];
    $data['usergroup']    = $_POST['usergroup'];
    $data['pub_datum']    = date("Y-m-d H:i:s");

    $query_content = "SELECT fieldname, file_id FROM ".CPO_CONTENT_FILES
                             ." WHERE article_id = ".$db_news->v('nr');
    $db_content->query($query_content);
    while($db_content->next_record()) {
        $data['content'][$db_content->v('fieldname').' (file)']['file_id'] = $db_content->v('file_id');
     }

     $query_content = "SELECT fieldname, html FROM ".CPO_CONTENT_HTML
                              ." WHERE article_id = ".$db_news->v('nr');
     $db_content->query($query_content);
     while($db_content->next_record()) {
        $data['content'][$db_content->v('fieldname').' (html)']['html'] = $db_content->v('html');
      }

      $query_content = "SELECT fieldname, image_id FROM ".CPO_CONTENT_IMAGES
                               ." WHERE article_id = ".$db_news->v('nr');
      $db_content->query($query_content);
      while($db_content->next_record()) {
          $data['content'][$db_content->v('fieldname').' (image)']['image_id'] = $db_content->v('image_id');
      }

      $query_content = "SELECT fieldname, text FROM ".CPO_CONTENT_TEXT
                               ." WHERE article_id = ".$db_news->v('nr');
      $db_content->query($query_content);
      while($db_content->next_record()) {
         $data['content'][$db_content->v('fieldname').' (text)']['text'] = $db_content->v('text');
      }

      $query_content = "SELECT fieldname, url, urltext, urltarget FROM ".CPO_CONTENT_URLS
                               ." WHERE article_id = ".$db_news->v('nr');
      $db_content->query($query_content);
      while($db_content->next_record()) {
          $data['content'][$db_content->v('fieldname'.' (url)')]['url'] = $db_content->v('url');
          $data['content'][$db_content->v('fieldname'.' (url)')]['urltext'] = $db_content->v('urltext');
          $data['content'][$db_content->v('fieldname'.' (url)')]['urltarget'] = $db_content->v('urltarget');
       }
       save_article($data);
}
Gruß
Zuletzt geändert von Rappi am 29.01.2007 08:56, insgesamt 2-mal geändert.
Marko Rappholz
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hi,

mir fehlt leider die Zeit, das Script genauer anzuschauen, aber wenn Du die folgende Variable im Data-Array auf eine User-ID setzt (z.B. die vom Admin - meistens 1), sollten die Artikel als freigegeben gespeichert werden.

$data['releasedby'] = 1;

Balu
Benutzeravatar
Rappi
ConPresso-User
Beiträge: 97
Registriert: 05.05.2006 11:15
Wohnort: Magdeburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 1 Mal

Beitrag von Rappi »

Ich habe fertig...

Bild

Zum einbinden des Scriptes muss folgende Datei angepasst werden:

_include/basic_navigation.inc.php

FINDE

Code: Alles auswählen

    if ($_SESSION['SID_user']['admin']>=ROLE_ADMIN) {
        $GLOBALS['navigation']['System'][] = array(
            'caption'=>'system settings',
            'url'=>BASE_REL.'_admin/system_preferences.php'
        );
DANACH EINFÜGEN

Code: Alles auswählen

        // Rubrik kopieren **************
        $GLOBALS['navigation']['System'][] = array(
            'caption'=>'Rubrik kopieren',
            'url'=>BASE_REL.'_admin/copy_rubric.php'
        );

        $GLOBALS['navigation']['System'][] = 'space';
        // Rubrik kopieren **************
und anschließend noch die Datei copy_rubric.php ins Verzeichnis _admin kopieren.

WICHTIG: Die Nutzung erfolgt auf eigene Gefahr. Bitte sichern Sie vorher die komplette Datenbank.
Dateianhänge
copy_rubric.zip
Version aktualisiert am 01.02.2007 15:30 Uhr MEZ

P.S. Nun werden auch Rubriken die manuell sortiert werden richtig kopiert.
(3.02 KiB) 576-mal heruntergeladen
Zuletzt geändert von Rappi am 01.02.2007 15:33, insgesamt 6-mal geändert.
Marko Rappholz
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Hallo Rappi,

da hast du dir aber eine Arbeit gemacht.

Ich habe deinen Skript mal ein ein mini-Modul gesteckt.
Dann muss man die Navigation nicht von Hand bearbeiten, was ein ConPresso-Update einfacher macht.

In deiner copy_rubric.php habe ich auch nur am Anfang eine Kleinigkeit verändet.
Dieser Skript ist jetzt unter "Module verwalten" verlinkt.

Gruß Matthias V

P.S. Man könne die das Skript auch über das Modul wieder in die Backendnavigation einbinden, aber der empfinde ich nicht als Sinnvoll. Weitere Infos zu Backend-Navi: http://wiki.conpresso.de/index.php/Main ... Navigation

P.P.S. Ich habe den Download wieder rausgenommen, da Rappi eine aktuellere Version gepostet hat.
Zuletzt geändert von Matthias V am 26.01.2007 16:41, insgesamt 1-mal geändert.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Rappi
ConPresso-User
Beiträge: 97
Registriert: 05.05.2006 11:15
Wohnort: Magdeburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 1 Mal

Beitrag von Rappi »

Hier ist eine aktualisierte Version von mod_copy_rubic
Dateianhänge
mod_copy_rubric.zip
Version aktualisiert am 01.02.2007 15:30 Uhr MEZ

P.S. Nun werden auch Rubriken die manuell sortiert werden richtig kopiert.
(4.14 KiB) 605-mal heruntergeladen
Marko Rappholz
Antworten