Fisharebest\Webtrees\Module\RecentChangesModule::changesTable PHP Метод

changesTable() приватный Метод

Format a table of events
private changesTable ( Fisharebest\Webtrees\GedcomRecord[] $records, string $sort, boolean $show_user ) : string
$records Fisharebest\Webtrees\GedcomRecord[]
$sort string
$show_user boolean
Результат string
    private function changesTable($records, $sort, $show_user)
    {
        global $controller;
        $table_id = 'table-chan-' . Uuid::uuid4();
        // lists requires a unique ID in case there are multiple lists per page
        switch ($sort) {
            case 'name':
            default:
                $aaSorting = "[1,'asc'], [2,'desc']";
                break;
            case 'date_asc':
                $aaSorting = "[2,'asc'], [1,'asc']";
                break;
            case 'date_desc':
                $aaSorting = "[2,'desc'], [1,'asc']";
                break;
        }
        $html = '';
        $controller->addExternalJavascript(WT_JQUERY_DATATABLES_JS_URL)->addInlineJavascript('
				jQuery("#' . $table_id . '").dataTable({
					dom: \'t\',
					paging: false,
					autoWidth:false,
					lengthChange: false,
					filter: false,
					' . I18N::datatablesI18N() . ',
					jQueryUI: true,
					sorting: [' . $aaSorting . '],
					columns: [
						{ sortable: false, class: "center" },
						null,
						null,
						{ visible: ' . ($show_user ? 'true' : 'false') . ' }
					]
				});
			');
        $html .= '<table id="' . $table_id . '" class="width100">';
        $html .= '<thead><tr>';
        $html .= '<th></th>';
        $html .= '<th>' . I18N::translate('Record') . '</th>';
        $html .= '<th>' . GedcomTag::getLabel('CHAN') . '</th>';
        $html .= '<th>' . GedcomTag::getLabel('_WT_USER') . '</th>';
        $html .= '</tr></thead><tbody>';
        foreach ($records as $record) {
            $html .= '<tr><td>';
            switch ($record::RECORD_TYPE) {
                case 'INDI':
                    $html .= $record->getSexImage('small');
                    break;
                case 'FAM':
                    $html .= '<i class="icon-button_family"></i>';
                    break;
                case 'OBJE':
                    $html .= '<i class="icon-button_media"></i>';
                    break;
                case 'NOTE':
                    $html .= '<i class="icon-button_note"></i>';
                    break;
                case 'SOUR':
                    $html .= '<i class="icon-button_source"></i>';
                    break;
                case 'REPO':
                    $html .= '<i class="icon-button_repository"></i>';
                    break;
            }
            $html .= '</td>';
            $html .= '<td data-sort="' . Filter::escapeHtml($record->getSortName()) . '">';
            $html .= '<a href="' . $record->getHtmlUrl() . '">' . $record->getFullName() . '</a>';
            $addname = $record->getAddName();
            if ($addname) {
                $html .= '<div class="indent"><a href="' . $record->getHtmlUrl() . '">' . $addname . '</a></div>';
            }
            $html .= '</td>';
            $html .= '<td data-sort="' . $record->lastChangeTimestamp(true) . '">' . $record->lastChangeTimestamp() . '</td>';
            $html .= '<td>' . Filter::escapeHtml($record->lastChangeUser()) . '</td>';
            $html .= '</tr>';
        }
        $html .= '</tbody></table>';
        return $html;
    }