/core/modules/views/src/Plugin/views/field/FileSize.php
PHP | 62 lines | 37 code | 9 blank | 16 comment | 3 complexity | e352392e932871ff514718a76f36f165 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
- <?php
- namespace Drupal\views\Plugin\views\field;
- use Drupal\Core\Form\FormStateInterface;
- use Drupal\views\ResultRow;
- /**
- * Render a numeric value as a size.
- *
- * @ingroup views_field_handlers
- *
- * @ViewsField("file_size")
- */
- class FileSize extends FieldPluginBase {
- /**
- * {@inheritdoc}
- */
- protected function defineOptions() {
- $options = parent::defineOptions();
- $options['file_size_display'] = ['default' => 'formatted'];
- return $options;
- }
- /**
- * {@inheritdoc}
- */
- public function buildOptionsForm(&$form, FormStateInterface $form_state) {
- parent::buildOptionsForm($form, $form_state);
- $form['file_size_display'] = [
- '#title' => $this->t('File size display'),
- '#type' => 'select',
- '#options' => [
- 'formatted' => $this->t('Formatted (in KB or MB)'),
- 'bytes' => $this->t('Raw bytes'),
- ],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function render(ResultRow $values) {
- $value = $this->getValue($values);
- if ($value) {
- switch ($this->options['file_size_display']) {
- case 'bytes':
- return $value;
- case 'formatted':
- default:
- return format_size($value);
- }
- }
- else {
- return '';
- }
- }
- }