boxes_i18n.inc in Boxes translation 6
File
plugins/boxes/boxes_i18n.inc
View source
<?php
class boxes_i18n extends boxes_simple {
public function options_defaults() {
$defaults = parent::options_defaults();
return $defaults + array(
'i18n_boxes' => array(
'language' => I18N_BOXES_LOCALIZE,
),
);
}
public function options_form() {
$form = parent::options_form();
$form['i18n_boxes'] = array(
'#type' => 'fieldset',
'#title' => t('Multilingual settings'),
'#collapsible' => TRUE,
'#weight' => 0,
'#tree' => TRUE,
);
$options = array(
'' => t('All languages'),
);
$options[I18N_BOXES_LOCALIZE] = t('All languages (Translatable)');
$options += locale_language_list('name');
$form['i18n_boxes']['language'] = array(
'#type' => 'radios',
'#title' => t('Language'),
'#default_value' => $this->options['i18n_boxes']['language'],
'#options' => $options,
);
return $form;
}
public function save() {
parent::save();
$this
->locale_refresh();
}
public function locale_refresh() {
$title = '';
$content = '';
if ($this->options['i18n_boxes']['language'] == I18N_BOXES_LOCALIZE) {
$content = $this->options['body'];
$title = $this->title;
}
i18nstrings_update("boxes:{$this->plugin_key}:{$this->delta}:body", $content, $this->options['format']);
i18nstrings_update("boxes:{$this->plugin_key}:{$this->delta}:title", $title);
}
public function render() {
global $language;
$block = parent::render();
if (!empty($this->options['i18n_boxes']['language'])) {
if ($this->options['i18n_boxes']['language'] == I18N_BOXES_LOCALIZE) {
$block['content'] = i18nstrings_text("boxes:{$this->plugin_key}:{$this->delta}:body", $block['content']);
$block['subject'] = i18nstrings("boxes:{$this->plugin_key}:{$this->delta}:title", $block['subject']);
$block['title'] = $block['subject'];
}
elseif ($this->options['i18n_boxes']['language'] != $language->language) {
$block = NULL;
}
}
return $block;
}
}