Benutzerdefinierte Felder mehrsprachig machen, ich komm nicht weiter... Benutzerdefinierte Felder mehrsprachig machen, ich komm nicht weiter...
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Benutzerdefinierte Felder mehrsprachig machen, ich komm nicht weiter...

Started by Pixeljunkie, August 27, 2009, 07:48:08 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Pixeljunkie

Hi,
ich nutze 2 Benutzerdefinierte Felder und die sprachen Deutsch, Englisch, Französisch
Nun hat es mich immer schon sehr gestört, das die Benutzerdefinierte Felder beim umschalten der jeweiligen Sprache gleich bleiben. Das möchte ich gerne ändern.

Was ich bisher getan habe:
1) Benutzerdefiniertes Feld 1 benannt: Aufnahmetechnik
2) Dann im Modul Gallery in der upload.php den Abschnitt
if(!empty($CONFIG['user_field1_name'])) {
            $form_array[] = array($CONFIG['user_field1_name'], 'user1', 0, 255, 1);
        }


geändert zu
if(!empty($CONFIG['user_field1_name'])) {
            $form_array[] = array($lang_upload_php['user_field1_name'], 'user1', 0, 255, 1);
        }


3) Nun in den Sprachdateien folgendes ergänzt:
'user_field1_name' =>'Aufnahmetechnik', //cpg1.4

Bis hier klappt es, in der Uploadmaske werden mir die Felder jeweils in der entsprechenden Sprache angezeigt.

Nun sollte dieser Wert aber noch in der displayimage.php übernommen werden. Und da klappt es leider noch nicht.
Ab Zeile 164 in der displayimage.php finde ich
for ($i = 1; $i <= 4; $i++) {
        if ($CONFIG['user_field' . $i . '_name']) {
            if ($CURRENT_PIC_DATA['user' . $i] != "") {
                $info[$CONFIG['user_field' . $i . '_name']] = make_clickable($CURRENT_PIC_DATA['user' . $i]);
            }
        }


Das habe ich mal geändert in
if ($CONFIG['user_field2_name']) {
        if ($CURRENT_PIC_DATA['user' . 2] != "") {
           $info[$CONFIG['user_field2_name']] = make_clickable($CURRENT_PIC_DATA['user' . 2]);
       }
    }


da ich ja keine automatische Abfrage 1-4 brauche, sondern jeweils definierte Felder, die sich dann ihren Wert holen und in der richtigen Sprache anzeigen.

Beim Betrachten eines Bildes werden die Felder nun zwar korrekt ausgegeben und angezeigt, jedoch sind sie noch immer nicht sprachlich korrekt, sondern zeigen dort an, was ich im Benutzerdefinierte Feld eingegeben hatte. Also lediglich Aufnahmetechnik. Egal welche Sprache gewählt wird.

Was muss ich in der displayimage.php ändern?

Αndré

Ich würde ganz anders an die Sache rangehen. Du benennst deine benutzerdefinierten Felder mit Platzhalten (z.B. {CUSTOM_FIELD_1}). Mit einem Plugin ersetzt du dann je nach Sprache die Platzhalter. Ein geeigneter Hook wäre z.B. page_html.

Vorteil: einfachere Lösung & du änderst keine Core-Dateien und ersparst dir somit Arbeit beim durchführen von Updates.

Pixeljunkie

Mit Hooks/Plugins möchte ich eigentlich eher Vorsichtig sein. Mein Coppermine läuft als Brigde in einem PragmaMX. Viele Plugins zerschießen das dann gerne.

Also wie gesagt, läuft ja schon alles, bis auf die Ausgabe wenn man sich das Bild anschaut. Also wäre der Haken hier zu suchen:

if ($CONFIG['user_field1_name']) {
        if ($CURRENT_PIC_DATA['user' . 1] != "") {
           $info[$CONFIG['user_field1_name']] = make_clickable($CURRENT_PIC_DATA['user' . 1]);
       }
    }


Hier müsste halt irgendwie noch mit rein, das er sich das Feld "Aufnahmedatum" (also user_field1_name) aus der Sprachdatei holt.
Leider bin ich nicht der größte was so PHP Kram angeht  :-\

Αndré

Vorschlag: ich erstell dir das Plugin, du testest es und wenn es nicht klappt, dann suchen wir auf deinem Weg weiter. Einverstanden?

Pixeljunkie

Huch, das wäre natürlich mehr als ich erwartet hab.
Was brauchst Du dazu von mir?

(Sehen kann man die Dateifelder bei mir als Gast nicht. Für die Öffentlichkeit halt alles deaktiviert)

Αndré

Am besten du nennst deine benutzerdefinierten Felder {CUSTOM_FIELD_1} und {CUSTOM_FIELD_2}. Das Plugin geb ich dir gleich.

Pixeljunkie

Okay, keine Eile. Wenn das hinhauen sollte, machste mich eh super happy.
Adminoberfläche, FTP und Dateien hab ich im Nu offen, damit ich die Änderungen von vorhin erstmal rückgängig machen kann.

Schon mal Danke
Toasti (Dein Ergebnis würde übrigens den Usern hier zugute kommen). Aber ganz sicherlich auch vielen anderen, die das ebenfalls gerne machen möchten.


Pixeljunkie

André,
tausend Dank! Habs drin uns es funktioniert in allen 3 Sprachen wunderbar.

Fein *hüpf*
Dankeschön und einen schönen Abend noch
Toasti