php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 06-09-2006, 01:07
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard Eigenes CMS - wie Mehrsprachigkeit handhaben?

Hallo zusammen,

ich mache mir derzeit Gedanken zu einem eigenen CMS das ich mir schreiben will. Um nicht später alles über den Haufen zu werfen, soll vorab geklärt werden was es alles geben soll und wie es realisiert werden kann.

Ich überlege, welche Felder man in der MySQL-Datenbank braucht. Nun plane ich die Kategorien und Artikel. Später soll es möglich sein, die Webseite mehrsprachig anzulegen.

Wie würdet ihr das realisieren, habt ihr bereits Erfahrungen was gut ist und was nicht?
__________________
Gruß,
Peter

Geändert von Screw Driver (06-09-2006 um 09:16 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 06-09-2006, 01:12
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

immer schön suchen vor dem posten:
http://php-resource.de/forum/showthr...hrsprachigkeit
http://php-resource.de/forum/showthr...hrsprachigkeit
und
Mit Zitat antworten
  #3 (permalink)  
Alt 06-09-2006, 01:43
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mir geht es eigentlich mehr darum, wie ich das in der Datenbank anlgen soll und wie das später gesteuert wird?

Ich müsste ja jeden Artikel und jede Kategorie mit einer ID der Sprache versehen in der sich der Backend User befindet.

Wie aber pflege ich das am besten?

Meine derzeitige Überlegung ist die, bei anlegen jeden Artikel automatisch in jede andere Sprache zu kopieren und dort offline zu schalten. Damit müsste ich mich in der datenbank von eindeutigen IDs verabschieden, da eine ID öfter vorkommen kann, aber dann halt mit unterschiedlichen IDs für die Sprache.

Problematisch ist hier z.B. was passiert, wenn ich einen Artikel lösche? Evtl. soll er überall gelöscht werden, evtl. aber auch in einer anderen Sprache bestehen bleiben?

Ich weiß nicht ob das vorgehen so logisch und gut ist. Was sind eure Erfahrungen mit anderen CMS die euch gut gefallen haben oder schlecht und wieso?

Würde mich sehr über Erfahrungen und Tipps freuen.
__________________
Gruß,
Peter
Mit Zitat antworten
  #4 (permalink)  
Alt 06-09-2006, 10:13
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

ich habe das bei einem kunden so gemacht:
bsp_tabelle:
id, artikel, preis, produkt_de, produkt_fr, beschreibung_de, beschreibung_fr, usw, usw.

dann definiere ich pro sprache in einer konfigurationsdatei z.b. eine globale variable $lang (de, fr). die abfragen im backend laufen dann in etwa so:
PHP-Code:
$query='SELECT id, artikel, preis, produkt_'.$lang.' AS produkt, beschreibung_'.$lang.' AS beschreibung'
plus noch einige andere dinge. ich will jetzt nicht das gesamte konzept erläutern, sondern nur das prinzip. läuft sehr gut, ist sehr flexibel und kann später immer wieder um weitere sprachen ergänzt werden.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 06-09-2006, 10:31
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Damit wäre es aber alles nict so flexibel wie ich es gerne hätte, da es nur ein Beschreibungsfeld gäbe.

Ich möchte aber pro Artikel einzelne Text-Abschnitte hinzufügen können. Wenn ich dazu der Tabelle zusätzliche Felder hinzufüge, wächst diese natürlich zu stark an, obwohl viele Artikel das wiederum gar nicht brauchen.

Wäre es nicht besser, eine Tabelle mit Feld für Sprach-ID und Content-ID zur Verknüpfung zu einer Inhaltstabelle anzulegen?
__________________
Gruß,
Peter
Mit Zitat antworten
  #6 (permalink)  
Alt 06-09-2006, 10:39
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

viele wege führen nach rom bei meinem konzept kommen noch etliche andere faktoren hinzu. wie du es machst, hängt von den anforderungen zusammen. ich bin mit meinem konzept jedenfalls sehr zufrieden. es ist halt ein tipp.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 06-09-2006, 10:48
Guido
 Member
Links : Onlinestatus : Guido ist offline
Registriert seit: Jan 2001
Beiträge: 324
Guido ist zur Zeit noch ein unbeschriebenes Blatt
Guido eine Nachricht über ICQ schicken Guido eine Nachricht über AIM schicken
Standard

Vielleicht mal bei anderen Anwendungen anschauen.
Gute Lösungsansätze findet man auch bei Smarty, z.B im SmartyWiki . Musst Du natürlich portieren.
Ebenso könntest Du ein Ü-Script starten, welches Dir aus den gewünschten Einträgen ein Duplikat in irgendeiner Form anlegt und dieses in aller Ruhe übersetzt. Das "WIE & EFFEKTIV" musst Du dir schon selber erarbeiten.
Mit Zitat antworten
  #8 (permalink)  
Alt 06-09-2006, 11:45
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich will nun nicht ettliche Systeme testen, da ich um hinter das jeweilige Konzept zu kommen doch recht lange brauchen würde.

Mir sind persönliche Erfahrungsberichte von anderen da doch lieber.

Kannst du den Ansatz von SmartyWiki bitte kurz erläutern?
__________________
Gruß,
Peter
Mit Zitat antworten
  #9 (permalink)  
Alt 06-09-2006, 11:59
dani_o
 PHP Senior
Links : Onlinestatus : dani_o ist offline
Registriert seit: Jun 2003
Ort: Lichtenstein/Sa.
Beiträge: 1.599
dani_o befindet sich auf einem aufstrebenden Ast
Standard

ich mach das immer relativ einfach:

meine tabelle:

id | name | en | de | fr

mit den bsp-inserts:

1 | erstes produkt | englische Beschreibung | deutsche Beschreibung | französische Beschreibung

dementsprechend kann ich sprachlich auswählen ...
simple aber funktioniert
__________________
Signatur-Text ...
Mit Zitat antworten
  #10 (permalink)  
Alt 06-09-2006, 12:02
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Klingt aber nicht flexibel wen du von vorne herein in der Datenbank anlegst welche Sprachen es gibt?
__________________
Gruß,
Peter
Mit Zitat antworten
  #11 (permalink)  
Alt 06-09-2006, 12:05
dani_o
 PHP Senior
Links : Onlinestatus : dani_o ist offline
Registriert seit: Jun 2003
Ort: Lichtenstein/Sa.
Beiträge: 1.599
dani_o befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Screw Driver
Klingt aber nicht flexibel wen du von vorne herein in der Datenbank anlegst welche Sprachen es gibt?
ist klar - dann 2 tabellen!

1 tabelle = produkt
2. tabelle = Texte

bsp.:

id | fid | text

der text wird eingefügt mit dem anfang der sprache bsp:

de:: Dein text

mit explode das :: trennen
text ausgeben ...
__________________
Signatur-Text ...
Mit Zitat antworten
  #12 (permalink)  
Alt 06-09-2006, 12:07
Guido
 Member
Links : Onlinestatus : Guido ist offline
Registriert seit: Jan 2001
Beiträge: 324
Guido ist zur Zeit noch ein unbeschriebenes Blatt
Guido eine Nachricht über ICQ schicken Guido eine Nachricht über AIM schicken
Standard

Sorry, meinst Du auch wirklich Erfahrungsberichte?
Oder willst Du fertige Lösungen...
Bei ersterem ist meine Erfahrung, das die im Templatesystem "Smarty" vorgeschlagenen Lösungen sehr gut sind, u.a. als Denkansatz für eigene PHP-Funktionen oder als fertiges Plugin, wenn man Smarty verwendet.

Einige davon nehmen deine heimatsprachige Vorlage und liefern z.B Vorschläge, die mit Bablefish übersetzt werden.
Ähnliche u.v.a. Beispiele findet man unter phpclasses.org

OffTopic:
Da keiner dein Konzept kennt, wird dir auch keiner eine fertigen sondern nur allgemeine Denk-Ansätze liefern können.
Dann wäre es auch "projekthilfe", "Job" oder "Scriptgesuch"
Mit Zitat antworten
  #13 (permalink)  
Alt 06-09-2006, 12:39
Screw Driver
 Newbie
Links : Onlinestatus : Screw Driver ist offline
Registriert seit: Aug 2003
Ort: Bremerhafen
Beiträge: 142
Screw Driver ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Na ein Job ist das nicht, es soll schliesslich ein Open Source CMS werden. Da ich nicht davon ausgehen, dass Leute interessiert sind wenn ich frage wer Lust auf das Projekt hat, will ich den Anfang selbst machen, in der Hoffnung danach ein paar Interessierte zu finden.
__________________
Gruß,
Peter
Mit Zitat antworten
  #14 (permalink)  
Alt 06-09-2006, 12:51
MarkusW
 Newbie
Links : Onlinestatus : MarkusW ist offline
Registriert seit: Feb 2006
Beiträge: 99
MarkusW ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mit 2 tabellen is das doch kein problem. du nimmst dir eine allgemeine tabelle die alle infos enthält:

id datum sonstwas

dann nimmst du ne 2. tabelle die alles enthält was dazugehört und mehrsprachig sein soll:

id pid text ... language

wobei pid eine id aus tabelle 1 ist und angibt zu welchem eintrag in tabelle 1 ein eintrag aus tabelle 2 gehört. id ist ein ganz normales primary feld und language ist die sprache (die ich persönlich auf jeden fall mit zahlen makieren würde, also 1 = deutsch, 2 = englisch,...)

du kannst auch auf das feld id verzichten und pid und language zu einem primary key zusammenfassen weil aus rein logischen gründen zu einem eintrag in tabelle 1 ja auch ein eintrag in tabelle 2 pro sprache reicht.
also wäre in tabelle 2 ein eintrag mit pid=5 und language=2 eindeutig.

abfragen kann man das dann z.b. so:
SELECT * FROM table1 t1, table2 t2 WHERE t1.id = t2.pid AND language = $current_language
Mit Zitat antworten
  #15 (permalink)  
Alt 06-09-2006, 12:54
dani_o
 PHP Senior
Links : Onlinestatus : dani_o ist offline
Registriert seit: Jun 2003
Ort: Lichtenstein/Sa.
Beiträge: 1.599
dani_o befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von MarkusW
mit 2 tabellen is das doch kein problem. du nimmst dir eine allgemeine tabelle die alle infos enthält: ...
Öhm das hatte ich schon geschrieben
__________________
Signatur-Text ...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:17 Uhr.