Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 23
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
CargoCSVFormat
0.00% covered (danger)
0.00%
0 / 23
0.00% covered (danger)
0.00%
0 / 2
110
0.00% covered (danger)
0.00%
0 / 1
 allowedParameters
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
2
 queryAndDisplay
0.00% covered (danger)
0.00%
0 / 17
0.00% covered (danger)
0.00%
0 / 1
90
1<?php
2/**
3 * @author Yaron Koren
4 * @ingroup Cargo
5 */
6
7class CargoCSVFormat extends CargoDeferredFormat {
8
9    public static function allowedParameters() {
10        return [
11            'delimiter' => [ 'type' => 'string', 'label' => wfMessage( 'cargo-viewdata-delimiterparam' )->parse() ],
12            'link text' => [ 'type' => 'string' ],
13            'filename' => [ 'type' => 'string' ],
14            'parse values' => [ 'type' => 'boolean' ]
15        ];
16    }
17
18    /**
19     * @param array $sqlQueries
20     * @param array $displayParams Unused
21     * @param array|null $querySpecificParams Unused
22     * @return string HTML
23     */
24    public function queryAndDisplay( $sqlQueries, $displayParams, $querySpecificParams = null ) {
25        $ce = SpecialPage::getTitleFor( 'CargoExport' );
26        $queryParams = $this->sqlQueriesToQueryParams( $sqlQueries );
27        $queryParams['format'] = 'csv';
28        if ( array_key_exists( 'delimiter', $displayParams ) && $displayParams['delimiter'] != '' ) {
29            $queryParams['delimiter'] = $displayParams['delimiter'];
30        }
31        if ( array_key_exists( 'filename', $displayParams ) && $displayParams['filename'] != '' ) {
32            $queryParams['filename'] = $displayParams['filename'];
33        }
34        if ( array_key_exists( 'parse values', $displayParams ) && $displayParams['parse values'] != '' ) {
35            $queryParams['parse values'] = $displayParams['parse values'];
36        }
37        if ( array_key_exists( 'link text', $displayParams ) && $displayParams['link text'] != '' ) {
38            $linkText = $displayParams['link text'];
39        } else {
40            $linkText = wfMessage( 'cargo-viewcsv' )->text();
41        }
42        $linkAttrs = [
43            'href' => $ce->getFullURL( $queryParams ),
44        ];
45        $text = Html::rawElement( 'a', $linkAttrs, $linkText );
46
47        return $text;
48    }
49
50}