/* * Перед рендерингом формы свойств поля добавляем в нее требуемый checkbox * */ function i18ncck_form_alter(&$form, $form_state, $form_id) { if (($form['form_id']['#value'] == 'content_field_edit_form') && (variable_get('i18n_node_' . $form['type_name']['#value'], FALSE))) { $i18ncck = array( '#type' => 'checkbox', '#title' => t('Language independent values'), '#default_value' => variable_get('i18ncck_' . $form['field_name']['#value'] , FALSE), ); /* * Указываем дополнительный обработчик формы функцию _i18ncck_field_submit() * */ if(isset($form['field'])) { $form['field'] = array_merge(array('i18ncck' => $i18ncck), $form['field']); $form['#submit'][] = '_i18ncck_field_submit'; } } } function _i18ncck_field_submit($form, &$form_state) { /* * Если флажок выставлен сохраняем уникальную переменную для каждого поля, * если нет – удаляем ее. * */ if (isset($form_state['values']['i18ncck']) && $form_state['values']['i18ncck']) { variable_set('i18ncck_' . $form_state['values']['field_name'], TRUE); } else { variable_del( 'i18ncck_' . $form_state['values']['field_name']); } } /* * При подтверждении формы редактирования материала обрабатываются * два случая: вставка и обновление. * */ function i18ncck_nodeapi(&$node, $op, $a3, $a4) { if ( variable_get('i18n_node_' . $node->type, FALSE)) { switch ($op){ /* * Получаем исходный по языку материал и все его переводы. * Проходим по циклу все поля, если для него указана многоязычность - * загружаем все переводы, присваиваем введенное значение поля и сохраняем их. * */ case 'update': $translations = translation_node_get_translations($node->tnid); foreach( content_fields() as $field) { $field = $field['field_name']; if ( variable_get('i18ncck_' . $field, FALSE) && isset($node->tnid)) { foreach($translations as $lang){ if($node->nid!=$lang->nid) { $i18n_node = node_load($lang->nid); $i18n_node->$field = $node->$field; node_save($i18n_node); unset($i18n_node); } } } } break; /* * От случая обновления отличается только способом получения NID исходного перевода * */ case 'insert': if(isset($node->translation_source->nid)) { $translations = translation_node_get_translations($node->translation_source->nid); foreach(content_fields() as $field) { $field = $field['field_name']; foreach( $translations as $translation) { $i18n_node = node_load($translation->nid); $i18n_node->$field = $node->$field; node_save($i18n_node); unset($i18n_node); } } } break; } } } Helpu nin! | Tutmonda Esperanto-adresaro

Helpu nin!

La agadoj de "Esperanto Internacia", la informado pri Esperanto kaj la instruado ankaŭ bezonas helpemajn manojn! Kunagu kaj helpu al "Esperanto Internacia" kaj ĝenerale al la Esperanto-movado. Vi povas kontribui per plej diversaj laboroj. Kelkaj nur kostos al vi kelkajn minutojn. Kompreneble ankaŭ eblas helpi ĉe pli longdaŭraj projektoj kaj agadoj. Ni nur mencias kelkajn:
  • Korektado de tekstoj (diversaj lingvoj);
  • Traduko de tekstoj (diversaj lingvoj);
  • Helpado ĉe informstandoj;
  • Pendigi afiŝojn aŭ distribui flugfoliojn;
  • Progamado;
  • Retagadoj (voĉdonoj; blogoj, Facebook k. a.)
  • Skribu al ni, se vi volus havi pliajn informojn: Esperantointernacia (x) gmail.com!

    Post via registriĝo vi ankaŭ en la parto "Detalaj informoj" povas enmeti informojn ĉe kiuj aferoj vi volas helpi kaj kiujn specialajn konojn vi havas