Merge pull request #409 from romainneutron/subdef-labels

[3.8] Add localized labels in subdef editing
This commit is contained in:
Romain Neutron
2013-06-17 10:34:40 -07:00
5 changed files with 38 additions and 9 deletions

View File

@@ -115,7 +115,9 @@ class Subdefs implements ControllerProviderInterface
$options[$option] = $value;
}
$subdefs->set_subdef($group, $name, $class, $downloadable, $options);
$labels = $request->request->get($post_sub . '_label', array());
$subdefs->set_subdef($group, $name, $class, $downloadable, $options, $labels);
}
}

View File

@@ -166,6 +166,17 @@ class databox_subdef
return $this->labels;
}
public function get_label($code, $substitute = true)
{
if (!isset($this->labels[$code]) && $substitute) {
return $this->get_name();
} elseif (isset($this->labels[$code])) {
return $this->labels[$code];
}
return null;
}
/**
* boolean
*

View File

@@ -220,7 +220,7 @@ class databox_subdefsStructure implements IteratorAggregate, Countable
* @param Array $options
* @return databox_subdefsStructure
*/
public function set_subdef($group, $name, $class, $downloadable, $options)
public function set_subdef($group, $name, $class, $downloadable, $options, $labels)
{
$dom_struct = $this->databox->get_dom_structure();
@@ -229,6 +229,14 @@ class databox_subdefsStructure implements IteratorAggregate, Countable
$subdef->setAttribute('name', mb_strtolower($name));
$subdef->setAttribute('downloadable', ($downloadable ? 'true' : 'false'));
foreach ($labels as $code => $label) {
$child = $dom_struct->createElement('label');
$labelElement = $child->appendChild($dom_struct->createTextNode($label));
$lang = $child->appendChild($dom_struct->createAttribute('lang'));
$lang->value = $code;
$subdef->appendChild($child);
}
foreach ($options as $option => $value) {
if (is_scalar($value)) {

View File

@@ -115,7 +115,7 @@ class patch_370a6 implements patchInterface
$options['meta'] = $subdef->meta_writeable() ? 'yes' : 'no';
$options['devices'] = array(databox_subdef::DEVICE_SCREEN);
$root->set_subdef($groupname, $subdef->get_name(), $subdef->get_class(), $subdef->is_downloadable(), $options);
$root->set_subdef($groupname, $subdef->get_name(), $subdef->get_class(), $subdef->is_downloadable(), $options, array());
}
protected function addMobileSubdefVideo($root, $baseSubdef, $groupname)
@@ -151,9 +151,9 @@ class patch_370a6 implements patchInterface
$newSubdefOptionsX264['acodec'] = 'libvo_aacenc';
$newSubdefOptionsX264['vcodec'] = 'libx264';
$root->set_subdef($groupname, $baseSubdef->get_name() . '_mobile_webM', $baseSubdef->get_class(), false, $newSubdefOptionsWebM);
$root->set_subdef($groupname, $baseSubdef->get_name() . '_mobile_OGG', $baseSubdef->get_class(), false, $newSubdefOptionsOgg);
$root->set_subdef($groupname, $baseSubdef->get_name() . '_mobile_X264', $baseSubdef->get_class(), false, $newSubdefOptionsX264);
$root->set_subdef($groupname, $baseSubdef->get_name() . '_mobile_webM', $baseSubdef->get_class(), false, $newSubdefOptionsWebM, array());
$root->set_subdef($groupname, $baseSubdef->get_name() . '_mobile_OGG', $baseSubdef->get_class(), false, $newSubdefOptionsOgg, array());
$root->set_subdef($groupname, $baseSubdef->get_name() . '_mobile_X264', $baseSubdef->get_class(), false, $newSubdefOptionsX264, array());
}
protected function addMobileSubdefImage($root, $baseSubdef, $groupname)
@@ -170,7 +170,7 @@ class patch_370a6 implements patchInterface
$optionMobile['devices'] = array(databox_subdef::DEVICE_HANDHELD);
$root->set_subdef($groupname, $baseSubdef->get_name() . '_mobile', $baseSubdef->get_class(), false, $optionMobile);
$root->set_subdef($groupname, $baseSubdef->get_name() . '_mobile', $baseSubdef->get_class(), false, $optionMobile, array());
}
protected function addHtml5Video($root, $baseSubdef, $groupname)
@@ -192,7 +192,7 @@ class patch_370a6 implements patchInterface
$newSubdefOptionsOgg['vcodec'] = 'libtheora';
$newSubdefOptionsOgg['acodec'] = 'libvorbis';
$root->set_subdef($groupname, $baseSubdef->get_name() . '_webM', $baseSubdef->get_class(), false, $newSubdefOptionsWebM);
$root->set_subdef($groupname, $baseSubdef->get_name() . '_OGG', $baseSubdef->get_class(), false, $newSubdefOptionsOgg);
$root->set_subdef($groupname, $baseSubdef->get_name() . '_webM', $baseSubdef->get_class(), false, $newSubdefOptionsWebM, array());
$root->set_subdef($groupname, $baseSubdef->get_name() . '_OGG', $baseSubdef->get_class(), false, $newSubdefOptionsOgg, array());
}
}

View File

@@ -213,6 +213,14 @@
<td style="width:250px;"></td>
<td></td>
</tr>
{% for code, language in app['locales.I18n.available'] %}
<tr>
<td>{{ language }}</td>
<td><input type="text" name="{{subdefgroup}}_{{subdefname}}_label[{{ code }}]" value="{{ subdef.get_label(code, false) }}" /></td>
<td></td>
</tr>
{% endfor %}
<tr>
<td>{% trans 'Telechargeable' %}</td>
<td><input type="checkbox" name="{{subdefgroup}}_{{subdefname}}_downloadable" {% if subdef.is_downloadable() %}checked="checked"{% endif %} value="1" /></td>