Bei neuer Sprache Seiten duplizieren

Bei Problemen/Anregungen mehrsprachiger Webseiten.

Bei neuer Sprache Seiten duplizieren

Beitragvon toolboks » 6. Okt 2009, 08:30

Bin dabei, eine Seite 3-sprachig zu bauen.

Deutsch ist fertig (fast) und jetzt wollte ich die anderen 2 Sprachen anlegen, hab ich auch gemacht ... aber ich nahm an, dass die bisherigen deutschen Seiten komplett dupliziert werden, so dass ich z.B. im engl. nur noch die deutschen Texte gegen die engl. austauschen muss ... Bilder etc. sind schon an ihrem Platz.

FRAGE: geht soetwas ?
nordmarketing
SEO Agentur - strategische SEO Beratung
Telefon: 0385 - 610 70 86
http://www.nordmarketing.eu || http://www.nordmarketing.at || http://www.nordmarketing.ch || http://www.toolboks.de
toolboks
 
Beiträge: 164
Registriert: 1. Nov 2006, 09:53
Wohnort: Mecklenburg-Vorpommern

Re: Bei neuer Sprache Seiten duplizieren

Beitragvon Xong » 6. Okt 2009, 09:13

toolboks hat geschrieben:FRAGE: geht soetwas ?
Mit ein bisschen Hintergrundwissen über die Datenbank schon.

Die Vorgehensweise ist einfach erklärt: Kopiere alle Datensätze aus der Tabelle article_slice mit clang=0 und ändere das Attribut clang der kopierten Datensätze auf die ID der neuen Sprache.

Code: Alles auswählen
INSERT INTO rex_spielwiese_article_slice (
  clang,ctype,re_article_slice_id,value1,value2,value3,value4,value5,value6,value7,value8,
  value9,value10,value11,value12,value13,value14,value15,value16,value17,value18,value19,
  value20,file1,file2,file3,file4,file5,file6,file7,file8,file9,file10,filelist1,filelist2,
  filelist3,filelist4,filelist5,filelist6,filelist7,filelist8,filelist9,filelist10,link1,
  link2,link3,link4,link5,link6,link7,link8,link9,link10,linklist1,linklist2,linklist3,
  linklist4,linklist5,linklist6,linklist7,linklist8,linklist9,linklist10,php,html,article_id,
  modultyp_id,createdate,updatedate,createuser,updateuser,next_article_slice_id,revision
  )
(
  SELECT 1,ctype,re_article_slice_id,value1,value2,value3,value4,value5,value6,value7,value8,
    value9,value10,value11,value12,value13,value14,value15,value16,value17,value18,value19,
    value20,file1,file2,file3,file4,file5,file6,file7,file8,file9,file10,filelist1,filelist2,
    filelist3,filelist4,filelist5,filelist6,filelist7,filelist8,filelist9,filelist10,link1,
    link2,link3,link4,link5,link6,link7,link8,link9,link10,linklist1,linklist2,linklist3,
    linklist4,linklist5,linklist6,linklist7,linklist8,linklist9,linklist10,php,html,article_id,
    modultyp_id,createdate,updatedate,createuser,updateuser,next_article_slice_id,revision
  FROM rex_spielwiese_article_slice
  WHERE clang=0
)
Wichtig: Im SELECT-Teil muss die 1 durch die ID der Sprache ersetzt werden, die du neu erzeugen möchtest.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon toolboks » 6. Okt 2009, 13:28

super, danke.

Für die erste Sprache (en) hat es funktioniert.
Wenn ich jetzt die zweite eingebe will (mit geänderter ID) kommt eine Fehlermeldung.

Ich hab das über phpmyadmin und dann auf MySQL klicken gemacht.
nordmarketing
SEO Agentur - strategische SEO Beratung
Telefon: 0385 - 610 70 86
http://www.nordmarketing.eu || http://www.nordmarketing.at || http://www.nordmarketing.ch || http://www.toolboks.de
toolboks
 
Beiträge: 164
Registriert: 1. Nov 2006, 09:53
Wohnort: Mecklenburg-Vorpommern

Beitragvon xrstf » 6. Okt 2009, 15:17

Dieses Vorgehen mit dem Kopieren kann so nicht funktionieren. Jedes Slice ist über die Spalten re_article_slice_id und next_article_slice_id mit einer doppelt verketteten Liste mit seinem Vorgänger und Nachfolger verbunden. Da beim INSERT...SELECT neue Primär-IDs erzeugt werden, müssen auch für jeden einzelnen Datensatz (!) diese Zeiger-IDs angepasst werden.

Dies trifft nur auf Artikel mit mehreren Slices zu. Wenn nur ein Slice pro Artikel vorhanden ist, sind keine Zeiger-IDs gesetzt und das Kopieren ist kein großes Problem. Andernfalls:

Wir haben eine derartige Funktion in einem Extra AddOn (erstal nur 4.1, an 4.2-Kompatibilität arbeiten wir noch) implementiert, allerdings ist der Vorgang sehr rechenintensiv für die Datenbank, da leider keinerlei sinnvolle Indexe auf rex_article und rex_article_slice gesetzt wurden. So dauerte schon lokal das Kopieren von 50 Artikeln von einer Sprache in zwei andere knapp 15 Sekunden. Daher geht das AddOn bei der Installation daher und verändert die Datenbank derart, dass mehr Indexe gesetzt sind.

Grüße,
Christoph
User was banned for this post. Bild
Benutzeravatar
xrstf
 
Beiträge: 61
Registriert: 3. Sep 2009, 14:49

Beitragvon Thomas.Blum » 6. Okt 2009, 16:11

Hej,

ich hatte vor kurzem das "Language Copy" Addon in REDAXO 4.2.1 eingesetzt. Da ich nicht mehr weiß ob ich da was modifiziert hatte, zeigt der Downloadlink nicht direkt auf das Addon auf redaxo.de Download

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon toolboks » 9. Okt 2009, 07:33

Hallo und recht vielen Dank dafür.
Aber das System, worum es hier geht, dass läuft unter REDAXO 4.1.

###################################

Thomas.Blum hat geschrieben:Hej,

ich hatte vor kurzem das "Language Copy" Addon in REDAXO 4.2.1 eingesetzt. Da ich nicht mehr weiß ob ich da was modifiziert hatte, zeigt der Downloadlink nicht direkt auf das Addon auf redaxo.de Download

vg Thomas
nordmarketing
SEO Agentur - strategische SEO Beratung
Telefon: 0385 - 610 70 86
http://www.nordmarketing.eu || http://www.nordmarketing.at || http://www.nordmarketing.ch || http://www.toolboks.de
toolboks
 
Beiträge: 164
Registriert: 1. Nov 2006, 09:53
Wohnort: Mecklenburg-Vorpommern


Zurück zu Mehrsprachigkeit [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron