Seiten alter Website automatisiert als Nodes erzeugen
Eingetragen von soezkan (558)
am 17.05.2015 - 09:37 Uhr in
am 17.05.2015 - 09:37 Uhr in
Hallo Forum,
ich habe eine uralte Website mit ca. 800 statischen Seiten (aus Urzeiten).
Zu dieser Seite liegt mir eine sitemap vor, die ich digital abrattern könnte
und die Inhalte daraus auslesen.
Meine Idee: ich würde gerne aus den Inhalten Nodes erzeugen.
Meine Frage: In welche Drupal-7-Datenbank-Tabellen muss hierfür einen Eintrag machen bzw. ist das überhaupt möglich?
Vielen Dank für Hilfe!
Liebe Grüße
Soezkan
- Anmelden oder Registrieren um Kommentare zu schreiben
Das ist der falsche Ansatz
am 17.05.2015 - 10:24 Uhr
So einfach ist das nicht mit Drupal.
Drupal basiert auf einem hochgradig relationalen Datenmodell.
Da wirst du keine einzelne Tabelle finden, in die du von außen etwas reinschreiben kannst.
Das geht mit 99,99999% Wahrscheinlichkeit schief, auch dann, wenn du glaubst das Datenmodell zu durchschauen.
Du kannst allerdings ein kleines Modul schreiben, das externe HTML-Dateien in einen entsprechenden content_type importiert.
Dazu kommst du allerdings nicht drum herum, dich mit der API zu befassen.
Das ist ein wenig Arbeit, die sich aber dadurch bezahlt macht, dass du hinterher alle möglichen "Sachen" importieren kannst.
Du kannst dir Feeds ansehen, und sicher einiges davon benutzen.
Grüße
Ronald
HTML import
am 17.05.2015 - 10:52 Uhr
Moin.
Einfach kurz nach "Drupal HTML import" gesucht brachte mir folgende Ergebnisse:
* [do:import_html Import HTML]
* [do:html_import HTML Import]
* Migrating old HTML files into Drupal
viel Spass beim Ausprobieren
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Vielen Dank für die sehr
am 18.05.2015 - 10:39 Uhr
Vielen Dank für die sehr brauchbaren Links. Damit werde ich's versuchen.
Liebe Grüße
Soezkan
Hi soezkan,wie Ronald
am 18.05.2015 - 17:45 Uhr
Hi soezkan,
wie Ronald richtig bemerkt hat kannst Du nicht einfach etwas in die Drupal DB reinschreiben
das geht mit sicherheit schief.
Bau Dir ein einfaches Modul wo Du den Body Content deiner Seiten ausliest und
machst Dir einen neuen Node für die Seite und dann etwa so:
$node = new stdClass();
$node->title = "YOUR TITLE";
$node->type = "page";
node_object_prepare($node);
$node->body['UND'][0]['value']=<Body Text deiner gelesenen Page>
node_save($node);
Hier ist ein Link der Dir zeigt wie man Nodes Progammatisch erstellt:
https://www.drupal.org/node/1388922
MfG
Robert
PS: Hallo Roland ;-)
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Danke Ronald, danke
am 18.05.2015 - 18:08 Uhr
Danke Ronald, danke Robert,
eure Tipps sind wirklich sehr brauchbar und sicherlich realistisch.
Was haltet Ihr von den Modulen die oben als Beispiel gebracht wurden?
Habt Ihr damit sowas schonmal gemacht?
Liebe Grüße
Soezkan
Hallo soezkan
am 18.05.2015 - 21:24 Uhr
ich selbst arbeite sehr wenig mit dem Feeds Module,
daher kann ich dazu nicht viel sagen.
Aber Dein Task ist so speziell, dass ich meine, dass Du diesen
besser in einem eigenem Modul löst, anstatt Dich darauf zu verlassen,
dass ein oder mehrere Module dies lösen können.
Stell Dir vor, Du kriegst deine Seiteninhalte in einen Node Body Content.
Deine alten Seiteninhalte referenzieren immer noch Bilder und CSS Styles
die in Deiner neuen Seite (Drupal) anders heissen!
D.H. Auch CSS und Skripts Deiner alten Seite müssten angepasst werden.
Daher würde ich aus meiner Erfahrung eher den Weg mit node_save nehmen,
da Du dort programmatisch diese Dinge beinflussen kannst.
Mfg
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Wenn du aus deinen "alten"
am 18.05.2015 - 22:58 Uhr
Wenn du aus deinen "alten" Seite z.B. eine CSV-Tabelle in Excel scalc (Libre Office) erstellst, kannst du die problemlos mit dem Feedsmodul einlesen.
Wenn du Felder vor dem Eintragen in die DB noch verändern möchtest, dann hilft dir dabei das Feeds-Tamper Modul.
Ich habe vor zwei Jahren auch mal ein entsprechendes Video zu diesem Thema gemacht. Das kannst du dir gerne bei YouTube anschauen.
Wenn die Seiten intern aufeinander verlinken, wird es allerdings ziemlich schwierig.
Gruß
Berthold Lausch
Drupal Video-Tutorials