[gelöst] Pro Sprache ein Field
am 13.06.2014 - 14:44 Uhr in
Hey!
In meinem Modul stelle ich via hook_edit_form ein Textfeld (incl. wysiwyg) bereit.
Die Seite soll mehrsprachig sein und ich möchte, dass der User unter diesem Feld noch ein weiteres Text-Feld hat (für die andere Sprache.)
Wie teile ich Drupal mit, welches der beiden Textfelder in welcher Sprache geschrieben ist?
Ist dafür die Renderfunktion (ganz unten) zuständig?
Wenn mir dabei jemand helfen könnte, wäre ich erfreut. :)
Nachtrag: Es handelt sich dabei um ein Ctools-Plugin:
<?php
$plugin = array(
'title' => t('Text'),
'single' => TRUE, // Has no subtype.
'description' => t('Add Text'),
'category' => t('Melody'),
'top level' => TRUE,
'edit form' => 'text_edit_form', // Funktionsname für die Edit-Form.
'render callback' => 'text_render', // Funktionsname zum rendern.
);
function text_edit_form($form, &$form_state) {
$conf = $form_state['conf'];
$form['form_text'] = array(
'#type' => 'text_format',
'#title' => t('Text'),
'#format' => 'filtered_html',
'#size' => 50,
'#resizeable' => TRUE,
'#default_value' => isset($conf['form_text']) ? $conf['form_text'] : '',
);
return $form;
}
function text_edit_form_submit($form, &$form_state) {
$form_state['conf']['form_text'] = $form_state['values']['form_text']['value'];
}
function text_render($subtype, $conf, $panel_args) {
$block = new stdClass();
//$form_text = (!empty($conf['form_text'])) ? check_plain($conf['form_text']) : '';
$form_text = $conf['form_text'];
$block->title = "text_render block->title";
$block->content = "$form_text";
return $block;
}
?>- Anmelden oder Registrieren um Kommentare zu schreiben

Normalerweise geht das ganz
am 13.06.2014 - 15:17 Uhr
Normalerweise geht das ganz anders. Du definierst einen Inhaltstyp mit Feldern und installierst die Module [do:i18n], [do:entity_translation] und [do:title]. Da erklärst Du im Datentyp bei den Veröffentlichungseinstellungen, daß dieser Datentyp eine field_translation unterstützt. Außerdem mußt Du verschieden Sprachen aktiviert haben und deren Auswahl. Jetzt kannst Du den Inhalt in der Default-Sprache eingeben. Danach gibt es neben dem "Bearbeiten" Tab den Tab "Übersetzen". Dort wählst Du die gewünschte Sprache aus und trägst die Übersetungen in die entsprechenden Felder ein. Warum willst Du das jetzt alles selbst nachbilden? Diese Logik entzieht sich mir.
Weil es über ein
am 13.06.2014 - 15:19 Uhr
Weil es über ein Ctools-Plugin laufen muss. Ich kann es aus gründen (die jetzt zu lang wären) leider nicht über einen ContentType machen. Dann wäre es klein Problem. :)
Die Feldstruktur für
am 13.06.2014 - 16:04 Uhr
Die Feldstruktur für übersetzbare Felder ist: feld_name[$language][$delta]['value']. Dann wird das von Drupal normalerweise auch richtig gerendert. Wenn Du das Feld aber nicht ordentlich in einem Entity eingebaut hast, mußt Du sehen, wie das angebunden wird. Das wirst Du auch nirgendwo so deutlich in der Dokumentation finden. Da hilft nur experimentieren.
Ok - überzeugt. Ich versuch
am 03.07.2014 - 09:24 Uhr
Ok - überzeugt.
Ich versuch mein Vorhaben dann doch mit Nodes zu lösen. :)