name = 'qtranslate_file';
$this->label = __("File",'acf');
$this->category = __("qTranslate", 'acf');
$this->defaults = array(
'save_format' => 'object',
'library' => 'all'
);
$this->l10n = array(
'select' => __("Select File",'acf'),
'edit' => __("Edit File",'acf'),
'update' => __("Update File",'acf'),
'uploadedTo' => __("uploaded to this post",'acf'),
);
acf_field::__construct();
// filters
add_filter('get_media_item_args', array($this, 'get_media_item_args'));
add_filter('wp_prepare_attachment_for_js', array($this, 'wp_prepare_attachment_for_js'), 10, 3);
// JSON
add_action('wp_ajax_acf/fields/file/get_files', array($this, 'ajax_get_files'));
add_action('wp_ajax_nopriv_acf/fields/file/get_files', array($this, 'ajax_get_files'), 10, 1);
}
function create_field($field)
{
if (!acf_qtranslate_enabled()) {
parent::create_field($field);
return;
}
global $q_config;
$languages = qtrans_getSortedLanguages(true);
$values = qtrans_split($field['value'], $quicktags = true);
$currentLanguage = qtrans_getLanguage();
echo '
';
foreach ($languages as $language) {
$class = 'wp-switch-editor';
if ($language === $currentLanguage) {
$class .= ' current-language';
}
echo '
' . $q_config['language_name'][$language] . '';
}
$base_class = $field['class'];
$base_name = $field['name'];
foreach ($languages as $language) :
$value = $values[$language];
$o = array(
'class' => '',
'icon' => '',
'title' => '',
'size' => '',
'url' => '',
'name' => '',
);
if($value && is_numeric($value)) {
$file = get_post($value);
if($file) {
$o['class'] = 'active';
$o['icon'] = wp_mime_type_icon( $file->ID );
$o['title'] = $file->post_title;
$o['size'] = size_format(filesize( get_attached_file( $file->ID ) ));
$o['url'] = wp_get_attachment_url( $file->ID );
$explode = explode('/', $o['url']);
$o['name'] = end( $explode );
}
}
$field['class'] = $base_class;
if ($language === $currentLanguage) {
$field['class'] .= ' current-language';
$o['class'] .= ' current-language';
}
$field['name'] = $base_name . '[' . $language . ']';
?>
-
-
:
:
';
}
function format_value($value, $post_id, $field)
{
return $value;
}
function format_value_for_api($value, $post_id, $field)
{
if (acf_qtranslate_enabled()) {
$value = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($value);
}
return parent::format_value_for_api($value, $post_id, $field);
}
function update_value($value, $post_id, $field)
{
if (acf_qtranslate_enabled()) {
$value = qtrans_join($value);
}
return $value;
}
function create_options( $field )
{
parent::create_options($field);
}
}
new acf_field_qtranslate_file();