1*88de55fdSRico Sonntag<?php 2*88de55fdSRico Sonntag/** 3*88de55fdSRico Sonntag * webtrees: online genealogy 4*88de55fdSRico Sonntag * Copyright (C) 2018 webtrees development team 5*88de55fdSRico Sonntag * This program is free software: you can redistribute it and/or modify 6*88de55fdSRico Sonntag * it under the terms of the GNU General Public License as published by 7*88de55fdSRico Sonntag * the Free Software Foundation, either version 3 of the License, or 8*88de55fdSRico Sonntag * (at your option) any later version. 9*88de55fdSRico Sonntag * This program is distributed in the hope that it will be useful, 10*88de55fdSRico Sonntag * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*88de55fdSRico Sonntag * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12*88de55fdSRico Sonntag * GNU General Public License for more details. 13*88de55fdSRico Sonntag * You should have received a copy of the GNU General Public License 14*88de55fdSRico Sonntag * along with this program. If not, see <http://www.gnu.org/licenses/>. 15*88de55fdSRico Sonntag */ 16*88de55fdSRico Sonntagdeclare(strict_types=1); 17*88de55fdSRico Sonntag 18*88de55fdSRico Sonntagnamespace Fisharebest\Webtrees\Statistics\Google; 19*88de55fdSRico Sonntag 20*88de55fdSRico Sonntaguse Fisharebest\Webtrees\I18N; 21*88de55fdSRico Sonntaguse Fisharebest\Webtrees\Statistics\AbstractGoogle; 22*88de55fdSRico Sonntag 23*88de55fdSRico Sonntag/** 24*88de55fdSRico Sonntag * 25*88de55fdSRico Sonntag */ 26*88de55fdSRico Sonntagclass ChartIndividualWithSources extends AbstractGoogle 27*88de55fdSRico Sonntag{ 28*88de55fdSRico Sonntag /** 29*88de55fdSRico Sonntag * Create a chart showing individuals with/without sources. 30*88de55fdSRico Sonntag * 31*88de55fdSRico Sonntag * @param int $tot_indi The total number of individuals 32*88de55fdSRico Sonntag * @param int $tot_indi_source The total number of individuals with sources 33*88de55fdSRico Sonntag * @param string|null $color_from 34*88de55fdSRico Sonntag * @param string|null $color_to 35*88de55fdSRico Sonntag * 36*88de55fdSRico Sonntag * @return string 37*88de55fdSRico Sonntag */ 38*88de55fdSRico Sonntag public function chartIndisWithSources( 39*88de55fdSRico Sonntag int $tot_indi, 40*88de55fdSRico Sonntag int $tot_indi_source, 41*88de55fdSRico Sonntag string $color_from = null, 42*88de55fdSRico Sonntag string $color_to = null 43*88de55fdSRico Sonntag ): string { 44*88de55fdSRico Sonntag $chart_color1 = (string) $this->theme->parameter('distribution-chart-no-values'); 45*88de55fdSRico Sonntag $chart_color2 = (string) $this->theme->parameter('distribution-chart-high-values'); 46*88de55fdSRico Sonntag $color_from = $color_from ?? $chart_color1; 47*88de55fdSRico Sonntag $color_to = $color_to ?? $chart_color2; 48*88de55fdSRico Sonntag 49*88de55fdSRico Sonntag $data = [ 50*88de55fdSRico Sonntag [ 51*88de55fdSRico Sonntag I18N::translate('Type'), 52*88de55fdSRico Sonntag I18N::translate('Total') 53*88de55fdSRico Sonntag ], 54*88de55fdSRico Sonntag [ 55*88de55fdSRico Sonntag I18N::translate('Without sources'), 56*88de55fdSRico Sonntag $tot_indi - $tot_indi_source 57*88de55fdSRico Sonntag ], 58*88de55fdSRico Sonntag [ 59*88de55fdSRico Sonntag I18N::translate('With sources'), 60*88de55fdSRico Sonntag $tot_indi_source 61*88de55fdSRico Sonntag ], 62*88de55fdSRico Sonntag ]; 63*88de55fdSRico Sonntag 64*88de55fdSRico Sonntag $colors = $this->interpolateRgb($color_from, $color_to, \count($data) - 1); 65*88de55fdSRico Sonntag 66*88de55fdSRico Sonntag return view( 67*88de55fdSRico Sonntag 'statistics/other/charts/pie', 68*88de55fdSRico Sonntag [ 69*88de55fdSRico Sonntag 'title' => I18N::translate('Individuals with sources'), 70*88de55fdSRico Sonntag 'data' => $data, 71*88de55fdSRico Sonntag 'colors' => $colors, 72*88de55fdSRico Sonntag 'labeledValueText' => 'percentage', 73*88de55fdSRico Sonntag ] 74*88de55fdSRico Sonntag ); 75*88de55fdSRico Sonntag } 76*88de55fdSRico Sonntag} 77