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