plugin = $plugin; $this->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); } /* * create_field() * * Create the HTML interface for your field * * @param $field - an array holding all the field's data * * @type action * @since 3.6 * @date 23/01/13 */ function create_field($field) { global $q_config; $languages = qtrans_getSortedLanguages(true); $values = qtrans_split($field['value'], $quicktags = true); $currentLanguage = $this->plugin->get_active_language(); 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 . ']'; ?>
'; } /* * format_value * * @description: uses the basic value and allows the field type to format it * @since: 3.6 * @created: 26/01/13 */ function format_value($value, $post_id, $field) { return $value; } /* * format_value_for_api() * * This filter is appied to the $value after it is loaded from the db and before it is passed back to the api functions such as the_field * * @type filter * @since 3.6 * @date 23/01/13 * * @param $value - the value which was loaded from the database * @param $post_id - the $post_id from which the value was loaded * @param $field - the field array holding all the field options * * @return $value - the modified value */ function format_value_for_api($value, $post_id, $field) { $value = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($value); return parent::format_value_for_api($value, $post_id, $field); } /* * update_value() * * This filter is appied to the $value before it is updated in the db * * @type filter * @since 3.6 * @date 23/01/13 * * @param $value - the value which will be saved in the database * @param $post_id - the $post_id of which the value will be saved * @param $field - the field array holding all the field options * * @return $value - the modified value */ function update_value($value, $post_id, $field) { return qtrans_join($value); } }