Author Topic: Import von über 100 Seiten (+ Struktur)  (Read 7319 times)

chio

  • Guest
Import von über 100 Seiten (+ Struktur)
« on: November 16, 2006, 01:25:29 PM »
Gibt es die Möglichkeit, einen ganzen Stapel von Seiten - wenn möglich gleich mit Titel, Description, Menüeintrag usw zu importieren?

Ich betreue zb solche Seiten: http://www.vital.co.at
Die gesamte Site wird mit einem Tool offline erzeugt und dann als statische Seiten hochgeladen.
Ich kann mit dem Tool natürlich auch CSV oder XML oder sonstwas erzeugen - es muss aber eine Text-Datei sein.
Wenn einmal alles drinnen ist, wird natürlich mit WB weitergearbeitet und nix mehr importiert, das ist ja der Sinn der Sache.

Zusatzfrage: Kann ich dieses Design im WB abbilden (die Marginalienspalte rechts) ?
 

Offline kweitzel

  • WebsiteBaker Org e.V.
  • **
  • Posts: 6983
  • Gender: Male
Re: Import von über 100 Seiten (+ Struktur)
« Reply #1 on: November 16, 2006, 07:40:01 PM »
Das Design ist kein Problem, am Ende geht es nur um den ganzen HTML Kram und dann gibst Du die WB spezifischen PHP Tags anstelle den Inhalten ein ... bei dem export/import hängt es davon ab, was am ende exportiert wird. Das ganze Design oder nur der "Inhaltsbereich". Wenn es sich nur um den Inhaltsbereich handelt (also ohne das Design drumherum), dann ist das nur eine Frage der Zuordnung von den Feldern in die Datenbank.

Hoffe diese Information gibt Dir mut WB und das das ganze mal auszuprobieren, denn das wirst Du machen müssen ... die Felder vergleichen, etc.

Gruß

Klaus

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #2 on: November 17, 2006, 08:39:00 AM »
nMorgen,
Exportieren kann ich was ich brauche, da bin ich in meinem Reich. Ich könnte mein Tool sogar so umstellen, dass es sich die (statischen) Seiten direkt aus dem Web holt, am irgendeiner Stelle (zb id="inhalt" oder innerste TD) auflöst und dann alles innerhalb als zB CSV mit irgendeinem Delimiter  abspeichert.
Bis hier kann ich es.
Aber dann kommt PHP+MySQL und da habe ich keine Ahnung von.
Was ich kann, ist einen String an eine URL posten. Aber wie muss dieser String aussehen?

Offline kweitzel

  • WebsiteBaker Org e.V.
  • **
  • Posts: 6983
  • Gender: Male
Re: Import von über 100 Seiten (+ Struktur)
« Reply #3 on: November 17, 2006, 10:13:45 AM »
nein ... mach es nicht so kompliziert ... Du nimmst PHPMyAdmin und kannst dort CSV importieren ... :-)

Leg Dir erst mal eine einzelne Seite in WB an, dann schaust Du Dir die DB Struktur an und exportierst einmal als CSV.

2 Tabellen sind dafür verantwortlich:

  • (table_prefix)mod_wysiwyg
  • (table_prefix)pages

In "pages" stehen die Daten zur Seite selber drin, in mod_wysiwyg der eigentliche Inhalt.

Ich glaube allerdings, dass ein Manuelles "Copy and Paste" doch die bessere Variante ist, da Du die Zugriffsdateien trotzdem erstellen musst (sprich die Seiten einmal in WB erstellen).

Gruß

Klaus

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #4 on: November 17, 2006, 10:50:14 AM »
Hmmm... ich sehe gerade, dass es wohl am einfachsten über phpMyAdmin gehen würde:
Eine WB Installation mit nur einer Seite machen, in die man bestimmte Begriffe reinschreibt. (zb $$titel$$... $$Text$$  usw), dann mit  phpMyAdmin  als SQL exportieren.

Dann könnte ich mein Tool so anpassen, dass diese Zeilen dupliziert und aufgefüllt werden. Dann schwupps über  phpMyAdmin  wieder rein. Vorausgesetzt, es sollen alles nur WYSIWYG-Seiten sein, ohne Besonderheiten.
Schwierig sind die Felder Page_ID und Section_ID (Was ist das überhaupt?)

Wozu dient die Tabelle sections?

Upps, jetzt haben wir paralles gepostet.

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: Import von über 100 Seiten (+ Struktur)
« Reply #5 on: November 17, 2006, 11:06:13 AM »
Hallo,

ohne page_id und section_id bekommst du in WB nix angezeigt. Jede Seite hat eine eindeutige page_id, die beim Anlegen erzeugt wird, und auf jeder Seite gibt es mindestens eine section (WYSIWYG z.B.) die eine eindeutige section_id hat. Man kann auf einer Seite mehrere Sections haben (erst WYSIWYG, dann z.B. Form, dann nochmal WYSIWYG oder was auch immer).

Wie Klaus schreibt musst du die komplette Struktur zuerst in WB anlegen (mit lauter leeren WYSIWYG Seiten) damit die page_ids und section_ids in der Datenbank und die Seiten im pages Folder angelegt werden.

Dann hast du mehrere Möglichkeiten den Inhalt zu importieren.

1. Du schreibst einen Importscript, der die Inhalte deiner exportierten Datei den entsprechenden page_id's und section_id's in der mod_wysiwyg Tabelle zuordnet.

2. Du importierst die Seiten über phpmyadmin die entsprechenden Inhalte in die mod_wysiwyg Tabelle.

3. Du nimmst den Quelltext des contents deiner bestehenden Seite und kopierst in im Admin Bereich in das sourcecode Fenster des WYSIWYG Editors.

Ich würde Version 3 bevorzugen, da du in diesem Fall gleich das Ergebnis im WYSIWYG Editor nacharbeiten kannst und die Inhalte gleich richtig in der Datenbank gespeichert sind. Die Nacharbeit musst du sowieso machen, weil bestimmt einige Formatierungen und Links angepasst werden müssen.

Matthias

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #6 on: November 17, 2006, 11:47:34 AM »
ahja..
In _diesem_ Fall - ausgehend von einer frischen Installation mit nur wysiwyg-Seiten - wäre Page_ID und Section_ID immer identisch, laufende Nummern. parent, level usw würden sich auch angeben lassen.

Was ich nicht verstehe: Warum müsste ich trotzdem alle Seiten anlegen? Funktioniert WB nicht, wenn man SQL-Daten einfach importiert? Wegen der /pages/datei.php ?

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: Import von über 100 Seiten (+ Struktur)
« Reply #7 on: November 17, 2006, 12:19:49 PM »
Hallo,

genau, du kannst die Seiten im pages Verzeichnis auch per Hand anlegen. Steht eigentlich nur die page_id. Die Frage ist nur wie kommt man am schnellsten ans Ziel. Ich behaupte, dass es am schnellsten geht die komplette Seitenstruktur in WB Admin anzulegen und den Quellcod der zu importierenden Seiten per copy and paste einzufügen. Alle anderen Varianten sind viel zeitaufwendiger und fehleranfälliger. Bedenke, dass es auch noch eine sections tabelle gibt, die mit der pages tabelle zusammeanrbeitet un deren Einträge zu denen in der pages tabelle passen müssen. Letztendlich musst du aber selbst entscheiden wie du es machen willst. Wir können nur darauf hinweisen, dass das mit den scripten und importen auch ganz schnell mal in die Hose gehen kann, so dass nix mehr geht. But thats your own risk  :wink:

Matthias

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #8 on: November 17, 2006, 01:36:27 PM »
Quote
Genau..
Das war jetzt etwas missverständlich. WB tut also nicht, wenn die Seiten im pages/ Verzeichnis nicht vorhanden sind? Wenn ich sie aber von Hand (oder eben auch automatisiert) anlege, kann es Ärger mit den Rechten geben, oder?
Prinzipiell kann man ja auch über die htaccess redirecten, zumindest für den Anfang. (?)

Schneller oder nicht: Das kommt darauf an, wie schnell man den Exporter machen kann und wieviele Seiten es sind. Es geht ja auch um Titles, Description usw..

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: Import von über 100 Seiten (+ Struktur)
« Reply #9 on: November 17, 2006, 02:02:45 PM »
Sorry wenns missverständlich war. Damit eine Seite angezeigt wird wird folgendes zwingend benötigt:

1. php file im pages Verzeichnis
2. Eintrag in der pages Tabelle
3. Eintrag in der sections Tabelle (jede seite muss mindestens eine section haben)

WYSIWYG Inhalte werden in der mod_wysiwyg Tabelle gespeichert
titel und description in der pages tabelle.

Also zusammengefasst du willst aus deinen bestehenden Seiten den title, die description und den content exportieren und diese aufgeteilt in die pages (title, description) und die mod_wysiwyg (content) tabelle importieren, dabei die entsprechenden page_id's und section_id's in die 3 Tabellen pages, sections und mod_wysiwyg tabelle richtig zuordnen lassen und die nicht vorhandenen Dateien im pagesfolder per htaccess umgehen. Na denn viel Spaß. Bin gespannt wie du das hinkriegst. Aber du hast dir das in den Kopf gesetzt und lässt dich davon anscheinend nicht abbringen. Du erwartest für diese Kamikazeunternehmen hoffentlich keine support?

Matthias

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #10 on: November 17, 2006, 02:31:39 PM »
Du hast das richtig+lustvoll zusammengefasst. :-D
Ich habe es mir auch nicht in den Kopf gesetzt, sondern nur mal angedacht, und ausgelotet, wo die Probleme sein könnten.

Die oben genannte Site wird ohnehin aus einer Datenbank heraus erzeugt. Die Zurordnung wäre etwas Denksport, aber machbar.

Kniffliger wäre, das mit bereits bestehenden - gewachsenen statischen - Sites zu machen; dazu müsste der QuellCode an der richtigen Stelle geknackt werden. Wenn eine Seite mit Dreamweaver Templates gemacht wurde kein Problem, solange die Seite sauber ist. Ansonsten: Zwischen schwer und unmöglich.

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #11 on: November 18, 2006, 10:19:13 AM »
Jou.
An sich funktioniert das, ist wie gesagt etwas Denksport.
Probleme habe ich vor allem wegen meinen kaum vorhandenen php/sql Kenntnissen...

Relativ knifflig wird es erst dann, wenn man auch abhängige Seiten importieren will.

Frage:
Was bedeutet die Felder "root-parent" und "level" in der Tabelle "pages"? Wie werden sie gebildet?

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: Import von über 100 Seiten (+ Struktur)
« Reply #12 on: November 18, 2006, 11:02:23 AM »
Hallo,

parent und root_parent = Page id der übergeordneten Datei
(parent = Page_id der direkt übergeordneten Seite, root_parent = bei weiteren ebenen di page_id der zugeordneten root seite)

level = Ebene
 (0 = rootverzeichnis, 1= 1. Unterebene 2= 2. Unterebene ....)

Beides wird beim Anlegen der Seiten in WB admin automatisch gebildet und beim ändern der Seitenoptionen angepasst.

Warum erstellst du nicht einfach ein paar Seiten, spielst mit den Seiteneinstellungen und beobachtest was sich in der Datenbank tut?

Matthias
« Last Edit: November 18, 2006, 11:20:45 AM by ruebenwurzel »

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #13 on: November 18, 2006, 12:16:01 PM »
Hallo,
das mache ich schon, (anlegen und nachsehen), das Problem ist: Das verhält sich etwas seltsam, und ich komme nicht drauf.
Bei einer streng hierarchischen Site müsste dann parent und root_parent immer gleich sein. (oder? wann wäre ein Unterschied?)

Ich sehe die Seiten auch im Admin-Teil, scheint alles ordentlich zu laufen. Aber:
In der Normalansicht klappen die Hauptmenüpunkte nicht aus, und gehe ich direkt über index.php?page_id=23 rein, kommt immer die Startseite.
*stirnrunzel*
Scheint, ich stehe irgendwo auf dem Schlauch...


Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: Import von über 100 Seiten (+ Struktur)
« Reply #14 on: November 18, 2006, 12:24:24 PM »
Hallo,

Quote
müsste dann parent und root_parent immer gleich sein

Na eben nicht.

Page (Page_id = 1, parent = 0, root_parent = 0, level = 0)
     Subpage (Page_id = 2, parent = 1, root_parent  = 1, level = 1)
          Subsubpage (Page_id = 3, parent = 2, root_parent = 1, level = 2)

Matthias
« Last Edit: November 18, 2006, 12:30:27 PM by ruebenwurzel »

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #15 on: November 18, 2006, 12:45:29 PM »
Trotzdem:
Die Seiten werden mit der Suche gefunden, ich kann sie aus dem Admin-Bereich aufrufen, auch direkt über URL-Eingabe, aber:
Sie erscheinen nicht im Menü.

Kann es sein, dass das Menü irgendwo gecached wird?

<edit> AH!
Was enthält "page_trail" und "position" in der Tabelle "pages"?

<edit2> Volltreffer, "page_trail" war's.

Jetzt tut alles.
« Last Edit: November 18, 2006, 01:17:36 PM by chio »

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #16 on: November 18, 2006, 05:19:23 PM »
Sodenn:
Es tut auch auf dem (Test)Server:
http://www.site-check.cc/wbimport/

Nicht schön, aber immerhin stimmen auch (fast) alle Pfade jetzt. Die Installation ist leider etwas buggy, deswegen funktioniert die Suche nicht. Ich mache das aber nicht neu, kommt ohnehin bald wieder weg. Ein bissel zäh läuft das leider..   :-(
« Last Edit: November 19, 2006, 10:48:15 AM by chio »

chio

  • Guest
Re: Import von über 100 Seiten (+ Struktur)
« Reply #17 on: November 19, 2006, 10:46:46 AM »
Jetzt fasse ich das mal zusammen:
(Bitte mich zu korrigieren, meine php/sql Kenntnisse sind mager)
 
Viele (wysiwyg)-Seiten stapelweise in WebsiteBaker importieren: Ja, das geht, relativ einfach.

Zuerst die Frage, ob's dafür steht:
Viele Seiten
Einheitliche Daten
Die Möglichkeit, das alles schnell in die nötige Form zu bringen (Schneller, als von Hand)
MyPhpAdmin vorhanden

Natürlich sollte man eine "jungfäuliche" Wb-Installation verwenden; oder zumindest ein Backup haben, der Teufel schläft nie. Vorab natürlich am Localhost testen. Wenn das alles unterhalb eines bestimmten Menüpunktes sein soll, sollte man den schon mal anlegen (und seine Page_ID herausfinden -> MyPhpAdmin)

Man muss wissen, welchen Pfad jede Datei am Ende haben soll; Title, Description, Inhalt usw sowieso in Datenform

Zuerst: Die höchste Page_ID und Section_ID herausfinden - > mit dem höchsten Wert + 1  beginnen. (Man kann auch höher anfangen, Lücken sind ja erlaubt)

Page_ID wird einfach raufgezählt, Section_ID hat der Einfachheit halber den selben Wert.

Es sind 3 Tabellen betroffen, man schreibe zeilenweise für jede den nötigen SQL-Befehl heraus: (prefix_ anpassen) - also 3 Zeilen / Seite:


Sections ist ganz einfach, wenn jede Seite eine (1) Section hat:
INSERT INTO `prefix_sections` VALUES ($section_id, $page_id, 1, 'wysiwyg', '1');

Der Seiteninhalt kommt in mod_wysiwyg:
INSERT INTO `prefix_mod_wysiwyg` VALUES ($section_id, $page_id, '$contenthtml', '$contenttext');
Über die Funktion von $contenttext bin ich mir nicht ganz im Klaren, ich nehme an, das Feld wird zum Suchen verwendet und enthält den „rohen“ Text von '$contenthtml'
Beide Felder müssen natürlich für SQL geignet sein (keine Zeilenwechsel, sondern \n ..)

Etwas schwieriger sind die pages:
INSERT INTO `prefix_ pages` VALUES ($page_id, $parent, $root_parent, $level, '/$link', '_top', '$PageTitle', '$MenueTitle', '$Description', '$Keywords', '$page_trail', '$template', '$visibility', $position, $menue, 'DE', 1, '2,1', '', '1', '', 1163774312, 1);


$parent, $root_parent, $level sind oben schon erklärt, es ist jeweils die Page_ID's der entsprechenden Seiten. /$link ist von /pages weg, ohne extension, zb /produkte/vitamine
$template kann man auch leer lassen, dann wird Default verwendet
$visibility normalerweise 'public'
$menue normal 1
$position kann man scheinbar auch $page_id verwenden, gibt die Reihenfolge im Menü an.

$page_trail ist knifflig: Die Page_id's der Vorgängerseiten und die eigene. ZB: /produkte/vitamine/e14 entspricht 3,12,18 (produkte = page_id 3, /produkte/vitamine = page_id 12, diese jetzt = page_id 18)
Wenn man alle Seiten in einer Ebene 2 (level=1)hat, ist es einfach: $parent,$page_id

Die restlichen Werte kann man von einer Musterseite kopieren.

Die ganzen Zeilen lädt man am Ende via myPhpAdmin hoch.
 
Zum Schluss noch die Dateien im Verzeichnis Pages:
<?php $page_id = $ebendiese; require("../../config.php"); require(WB_PATH."/index.php"); ?>
Erzeugen und hochladen. Hier kann es später Probleme mit den Rechten geben, wenn man versucht die Hierarchien zu ändern.

Allgemeine Anmerkungen:
Ich wollte wissen ob es geht und habe es deswegen gemacht. Ob es Sinn macht, ist eine andere Frage. In diesem Fall habe ich ein Tool verwendet, das eigentlich statische Seiten erzeugt und hochlädt. Man merkt sofort: Statische Seiten werden wesentlich schneller ausgeliefert, ferner verursachen sie weit weniger Traffic. Warum sollte ich also dynamische Seiten machen? – mal den Kunden fragen, ob er das will. Immerhin weiß ich: Es geht.
« Last Edit: November 19, 2006, 10:54:03 AM by chio »

 

postern-length