15afbc57aSGreg Roach<?php 25afbc57aSGreg Roach 35afbc57aSGreg Roachuse Fisharebest\Webtrees\Auth; 47c7d1e03SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\AddUnlinkedPage; 56fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CheckTree; 60c0910bfSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel; 7d4265d07SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateMediaObjectModal; 8d4265d07SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateNoteModal; 9852ede8cSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateRepositoryModal; 10852ede8cSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateSourceModal; 11852ede8cSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateSubmitterModal; 12ce42304aSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\DataFixChoose; 135afbc57aSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\DeleteTreeAction; 146fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\FindDuplicateRecords; 156d576906SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ExportGedcomPage; 166fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\GedcomLoad; 176fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ImportGedcomPage; 185bbfbb82SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\MergeRecordsPage; 1922e73debSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesLogPage; 206fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\RenumberTreePage; 21da1c67ccSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\SelectDefaultTree; 228e0e1b25SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\TreePage; 236fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\TreePreferencesPage; 246fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\TreePrivacyPage; 2596716c47SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\UnconnectedPage; 26a2a24e20SGreg Roachuse Fisharebest\Webtrees\I18N; 27a2a24e20SGreg Roachuse Fisharebest\Webtrees\Site; 2895b80a66SGreg Roachuse Fisharebest\Webtrees\Tree; 29a2a24e20SGreg Roachuse Fisharebest\Webtrees\View; 305afbc57aSGreg Roachuse Illuminate\Database\Capsule\Manager as DB; 315afbc57aSGreg Roach 3295b80a66SGreg Roach/** 3395b80a66SGreg Roach * @var array<Tree> $all_trees 3495b80a66SGreg Roach * @var string $title 3595b80a66SGreg Roach * @var Tree $tree 3695b80a66SGreg Roach */ 3795b80a66SGreg Roach 385afbc57aSGreg Roach?> 39dd6b2bfcSGreg Roach 40dd6b2bfcSGreg Roach<?php if (!empty($all_trees)) : ?> 410c0910bfSGreg Roach <?= view('components/breadcrumbs', ['links' => [route(ControlPanel::class) => I18N::translate('Control panel'), $title]]) ?> 42dd6b2bfcSGreg Roach<?php endif ?> 43dd6b2bfcSGreg Roach 44dd6b2bfcSGreg Roach<h1><?= $title ?></h1> 45dd6b2bfcSGreg Roach 46dd6b2bfcSGreg Roach<?php if (empty($all_trees)) : ?> 47dd6b2bfcSGreg Roach <div class="alert alert-info"> 48dd6b2bfcSGreg Roach <?= I18N::translate('You need to create a family tree.') ?> 49dd6b2bfcSGreg Roach </div> 50dd6b2bfcSGreg Roach<?php endif ?> 51dd6b2bfcSGreg Roach 52290bb197SJonathan Jaubart<div id="accordion" aria-multiselectable="true"> 53dd6b2bfcSGreg Roach <?php foreach ($all_trees as $managed_tree) : ?> 54dd6b2bfcSGreg Roach <?php if (Auth::isManager($managed_tree)) : ?> 55290bb197SJonathan Jaubart <div class="accordion-item"> 56290bb197SJonathan Jaubart <div class="accordion-header" id="card-tree-header-<?= $managed_tree->id() ?>"> 57*7fa97a69SGreg Roach <button class="accordion-button <?= $managed_tree->id() === $tree->id() || $managed_tree->getPreference('imported') === '0' ? ' ' : ' collapsed' ?>" type="button" data-bs-toggle="collapse" data-bs-target="#card-tree-content-<?= $managed_tree->id() ?>" aria-expanded="<?= $managed_tree->id() === $tree->id() || $managed_tree->getPreference('imported') === '0' ? 'true' : 'false' ?>" aria-controls="card-tree-content-<?= $managed_tree->id() ?>"> 58290bb197SJonathan Jaubart <h2> 59dd6b2bfcSGreg Roach <?= view('icons/tree') ?> 60cc13d6d8SGreg Roach <?= e($managed_tree->name()) ?> — <?= e($managed_tree->title()) ?> 61dd6b2bfcSGreg Roach </h2> 62290bb197SJonathan Jaubart </button> 63dd6b2bfcSGreg Roach </div> 64315eb316SGreg Roach 65*7fa97a69SGreg Roach <div id="card-tree-content-<?= $managed_tree->id() ?>" class="accordion-collapse collapse<?= $managed_tree->id() === $tree->id() || $managed_tree->getPreference('imported') === '0' ? ' show' : '' ?>" aria-labelledby="panel-tree-header-<?= $managed_tree->id() ?>"> 66290bb197SJonathan Jaubart <div class="accordion-body"> 673fa66c66SGreg Roach <?php $importing = DB::table('gedcom_chunk')->where('gedcom_id', '=', $managed_tree->id())->where('imported', '=', 0)->exists() ?> 68dd6b2bfcSGreg Roach <?php if ($importing) : ?> 695197b5a1SGreg Roach <div id="import<?= $managed_tree->id() ?>" class="col-12"> 70dd6b2bfcSGreg Roach <div class="progress"> 71eb7fd195SGreg Roach <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"> 72dd6b2bfcSGreg Roach <?= I18N::translate('Calculating…') ?> 73dd6b2bfcSGreg Roach </div> 74dd6b2bfcSGreg Roach </div> 75eb7fd195SGreg Roach </div> 76dd6b2bfcSGreg Roach <?php View::push('javascript'); ?> 77dd6b2bfcSGreg Roach <script> 786fd01894SGreg Roach $("#import<?= $managed_tree->id() ?>").load("<?= route(GedcomLoad::class, ['tree' => $managed_tree->name()]) ?>", {}); 79dd6b2bfcSGreg Roach </script> 80dd6b2bfcSGreg Roach <?php View::endpush() ?> 81dd6b2bfcSGreg Roach <?php endif ?> 8272cf66d4SGreg Roach <div class="row<?= $importing ? ' d-none' : '' ?>" id="actions<?= $managed_tree->id() ?>"> 83dd6b2bfcSGreg Roach <div class="col-sm-6 col-md-3"> 84dd6b2bfcSGreg Roach <h3> 85dd6b2bfcSGreg Roach <?= I18N::translate('Family tree') ?> 86dd6b2bfcSGreg Roach </h3> 87315eb316SGreg Roach <ul class="fa-ul mx-0"> 884d787ddeSGreg Roach <li> 894d787ddeSGreg Roach <span class="fa-li"><?= view('icons/tree') ?></span> 908e0e1b25SGreg Roach <a href="<?= e(route(TreePage::class, ['tree' => $managed_tree->name()])) ?>"> 914d787ddeSGreg Roach <?= I18N::translate('Home page') ?> 924d787ddeSGreg Roach </a> 934d787ddeSGreg Roach </li> 944d787ddeSGreg Roach </ul> 95315eb316SGreg Roach <ul class="fa-ul mx-0"> 96dd6b2bfcSGreg Roach <!-- PREFERENCES --> 97dd6b2bfcSGreg Roach <li> 98dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/preferences') ?></span> 996fd01894SGreg Roach <a href="<?= e(route(TreePreferencesPage::class, ['tree' => $managed_tree->name()])) ?>"> 100dd6b2bfcSGreg Roach <?= I18N::translate('Preferences') ?> 101315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 102dd6b2bfcSGreg Roach </a> 103dd6b2bfcSGreg Roach </li> 104dd6b2bfcSGreg Roach <!-- PRIVACY --> 105dd6b2bfcSGreg Roach <li> 106dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/lock') ?></span> 1076fd01894SGreg Roach <a href="<?= e(route(TreePrivacyPage::class, ['tree' => $managed_tree->name()])) ?>"> 108dd6b2bfcSGreg Roach <?= I18N::translate('Privacy') ?> 109315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 110dd6b2bfcSGreg Roach </a> 111dd6b2bfcSGreg Roach </li> 112dd6b2bfcSGreg Roach <!-- DELETE --> 113a2a24e20SGreg Roach <?php if (count($all_trees) > 1 && Auth::isAdmin()) : ?> 114dd6b2bfcSGreg Roach <li> 115dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/delete') ?></span> 116d4786c66SGreg Roach <a href="#" data-wt-post-url="<?= e(route(DeleteTreeAction::class, ['tree' => $managed_tree->name()])) ?>" data-wt-reload-url="<?= e(route(ControlPanel::class)) ?>" data-wt-confirm="<?= I18N::translate('Are you sure you want to delete “%s”?', e($managed_tree->title())) ?>"> 117dd6b2bfcSGreg Roach <?= I18N::translate('Delete') ?> 118dd6b2bfcSGreg Roach </a> 119dd6b2bfcSGreg Roach </li> 120a2a24e20SGreg Roach <?php endif ?> 121a2a24e20SGreg Roach 122dd6b2bfcSGreg Roach <!-- SET AS DEFAULT --> 123a2a24e20SGreg Roach <?php if (count($all_trees) > 1 && Auth::isAdmin()) : ?> 124dd6b2bfcSGreg Roach <li> 125dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/favorite') ?></span> 126aa6f03bbSGreg Roach <?php if ($managed_tree->name() === Site::getPreference('DEFAULT_GEDCOM')) : ?> 127dd6b2bfcSGreg Roach <?= I18N::translate('Default family tree') ?> 128dd6b2bfcSGreg Roach <?php else : ?> 12972cf66d4SGreg Roach <a href="#" onclick="document.defaultform<?= $managed_tree->id() ?>.submit();"> 130dd6b2bfcSGreg Roach <?= I18N::translate('Set as default') ?> 131315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 132dd6b2bfcSGreg Roach </a> 133da1c67ccSGreg Roach <form method="post" action="<?= route(SelectDefaultTree::class, ['tree' => $managed_tree->name()]) ?>" name="defaultform<?= $managed_tree->id() ?>"> 134dd6b2bfcSGreg Roach <?= csrf_field() ?> 135dd6b2bfcSGreg Roach <!-- A11Y - forms need submit buttons, but they look ugly here --> 136315eb316SGreg Roach <button class="visually-hidden" type="submit"> 137dd6b2bfcSGreg Roach <?= I18N::translate('Set as default') ?> 138dd6b2bfcSGreg Roach </button> 139dd6b2bfcSGreg Roach </form> 140dd6b2bfcSGreg Roach <?php endif ?> 141dd6b2bfcSGreg Roach </li> 142dd6b2bfcSGreg Roach <?php endif ?> 143dd6b2bfcSGreg Roach </ul> 144ce42304aSGreg Roach 145315eb316SGreg Roach <ul class="fa-ul mx-0"> 146ce42304aSGreg Roach <!-- DATA FIXES --> 147ce42304aSGreg Roach <li> 148ce42304aSGreg Roach <span class="fa-li"><?= view('icons/data-fix') ?></span> 149ce42304aSGreg Roach <a href="<?= e(route(DataFixChoose::class, ['tree' => $managed_tree->name()])) ?>"> 150ce42304aSGreg Roach <?= I18N::translate('Data fixes') ?> 151315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 152ce42304aSGreg Roach </a> 153ce42304aSGreg Roach </li> 154ce42304aSGreg Roach </ul> 155dd6b2bfcSGreg Roach </div> 156dd6b2bfcSGreg Roach <div class="col-sm-6 col-md-3"> 157dd6b2bfcSGreg Roach <h3> 158a2a24e20SGreg Roach <?= /* I18N: Individuals, sources, dates, places, etc. */ 159a2a24e20SGreg Roach I18N::translate('Genealogy data') ?> 160dd6b2bfcSGreg Roach </h3> 161315eb316SGreg Roach <ul class="fa-ul mx-0"> 162dd6b2bfcSGreg Roach <!-- FIND DUPLICATES --> 163dd6b2bfcSGreg Roach <li> 164dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/copy') ?></span> 1656fd01894SGreg Roach <a href="<?= e(route(FindDuplicateRecords::class, ['tree' => $managed_tree->name()])) ?>"> 166dd6b2bfcSGreg Roach <?= I18N::translate('Find duplicates') ?> 167315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 168dd6b2bfcSGreg Roach </a> 169dd6b2bfcSGreg Roach </li> 170dd6b2bfcSGreg Roach <!-- MERGE --> 171dd6b2bfcSGreg Roach <li> 172dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/merge') ?></span> 1735bbfbb82SGreg Roach <a href="<?= e(route(MergeRecordsPage::class, ['tree' => $managed_tree->name()])) ?>"> 174dd6b2bfcSGreg Roach <?= I18N::translate('Merge records') ?> 175315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 176dd6b2bfcSGreg Roach </a> 177dd6b2bfcSGreg Roach </li> 178dd6b2bfcSGreg Roach <!-- CHECK FOR ERRORS --> 179dd6b2bfcSGreg Roach <li> 180dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/warning') ?></span> 1816fd01894SGreg Roach <a href="<?= e(route(CheckTree::class, ['tree' => $managed_tree->name()])) ?>"> 182dd6b2bfcSGreg Roach <?= I18N::translate('Check for errors') ?> 183315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 184dd6b2bfcSGreg Roach </a> 185dd6b2bfcSGreg Roach </li> 186dd6b2bfcSGreg Roach <!-- UNCONNECTED INDIVIDUALS --> 187dd6b2bfcSGreg Roach <li> 188dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/unlink') ?></span> 18996716c47SGreg Roach <a href="<?= e(route(UnconnectedPage::class, ['tree' => $managed_tree->name()])) ?>"> 190dd6b2bfcSGreg Roach <?= I18N::translate('Find unrelated individuals') ?> 191315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 192dd6b2bfcSGreg Roach </a> 193dd6b2bfcSGreg Roach </li> 194dd6b2bfcSGreg Roach <!-- RENUMBER --> 195dd6b2bfcSGreg Roach <li> 196dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/sort') ?></span> 1976fd01894SGreg Roach <a href="<?= e(route(RenumberTreePage::class, ['tree' => $managed_tree->name()])) ?>"> 198dd6b2bfcSGreg Roach <?= I18N::translate('Renumber') ?> 199315eb316SGreg Roach <span class="visually-hidden"> 200cc13d6d8SGreg Roach <?= e($managed_tree->title()) ?> 201dd6b2bfcSGreg Roach </span> 202dd6b2bfcSGreg Roach </a> 203dd6b2bfcSGreg Roach </li> 204dd6b2bfcSGreg Roach <!-- CHANGES --> 205dd6b2bfcSGreg Roach <li> 206dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/edit') ?></span> 20722e73debSGreg Roach <a href="<?= route(PendingChangesLogPage::class, ['tree' => $managed_tree->name()]) ?>"> 208dd6b2bfcSGreg Roach <?= I18N::translate('Changes log') ?> 209315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 210dd6b2bfcSGreg Roach </a> 211dd6b2bfcSGreg Roach </li> 212dd6b2bfcSGreg Roach </ul> 213dd6b2bfcSGreg Roach </div> 214dd6b2bfcSGreg Roach <div class="col-sm-6 col-md-3"> 215dd6b2bfcSGreg Roach <h3> 216dd6b2bfcSGreg Roach <?= I18N::translate('Add unlinked records') ?> 217dd6b2bfcSGreg Roach </h3> 218315eb316SGreg Roach <ul class="fa-ul mx-0"> 219dd6b2bfcSGreg Roach <!-- UNLINKED INDIVIDUAL --> 220dd6b2bfcSGreg Roach <li> 221dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/individual') ?></span> 2227c7d1e03SGreg Roach <a href="<?= e(route(AddUnlinkedPage::class, ['tree' => $managed_tree->name()])) ?>"> 223dd6b2bfcSGreg Roach <?= I18N::translate('Individual') ?> 224315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 225dd6b2bfcSGreg Roach </a> 226dd6b2bfcSGreg Roach </li> 227dd6b2bfcSGreg Roach <!-- UNLINKED SOURCE --> 228dd6b2bfcSGreg Roach <li> 229dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/source') ?></span> 230d4786c66SGreg Roach <a href="#" data-wt-href="<?= e(route(CreateSourceModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static"> 231dd6b2bfcSGreg Roach <?= I18N::translate('Source') ?> 232315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 233dd6b2bfcSGreg Roach </a> 234dd6b2bfcSGreg Roach </li> 235dd6b2bfcSGreg Roach <!-- UNLINKED REPOSITORY --> 236dd6b2bfcSGreg Roach <li> 237dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/repository') ?></span> 238d4786c66SGreg Roach <a href="#" data-wt-href="<?= e(route(CreateRepositoryModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static"> 239dd6b2bfcSGreg Roach <?= I18N::translate('Repository') ?> 240315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 241dd6b2bfcSGreg Roach </a> 242dd6b2bfcSGreg Roach </li> 243dd6b2bfcSGreg Roach <!-- UNLINKED MEDIA OBJECT --> 244dd6b2bfcSGreg Roach <li> 245dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/media') ?></span> 246d4786c66SGreg Roach <a href="#" data-wt-href="<?= e(route(CreateMediaObjectModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static"> 247dd6b2bfcSGreg Roach 248dd6b2bfcSGreg Roach <?= I18N::translate('Media object') ?> 249315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 250dd6b2bfcSGreg Roach </a> 251dd6b2bfcSGreg Roach </li> 252dd6b2bfcSGreg Roach <!-- UNLINKED NOTE --> 253dd6b2bfcSGreg Roach <li> 254dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/note') ?></span> 255d4786c66SGreg Roach <a href="#" data-wt-href="<?= e(route(CreateNoteModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static"> 256dd6b2bfcSGreg Roach <?= I18N::translate('Shared note') ?> 257315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 258dd6b2bfcSGreg Roach </a> 259dd6b2bfcSGreg Roach </li> 260dd6b2bfcSGreg Roach <!-- UNLINKED SUBMITTER --> 261dd6b2bfcSGreg Roach <li> 262dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/submitter') ?></span> 263d4786c66SGreg Roach <a href="#" data-wt-href="<?= e(route(CreateSubmitterModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static"> 264dd6b2bfcSGreg Roach <?= I18N::translate('Submitter') ?> 265315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 266dd6b2bfcSGreg Roach </a> 267dd6b2bfcSGreg Roach </li> 268dd6b2bfcSGreg Roach </ul> 269dd6b2bfcSGreg Roach </div> 270dd6b2bfcSGreg Roach <div class="col-sm-6 col-md-3"> 271dd6b2bfcSGreg Roach <h3> 272dd6b2bfcSGreg Roach <?= I18N::translate('GEDCOM file') ?> 273dd6b2bfcSGreg Roach </h3> 274315eb316SGreg Roach <ul class="fa-ul mx-0"> 275dd6b2bfcSGreg Roach <!-- DOWNLOAD/Export --> 276dd6b2bfcSGreg Roach <li> 277dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/download') ?></span> 2786d576906SGreg Roach <a href="<?= e(route(ExportGedcomPage::class, ['tree' => $managed_tree->name()])) ?>"> 279dd6b2bfcSGreg Roach <?= I18N::translate('Export') ?> 280315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 281dd6b2bfcSGreg Roach </a> 282dd6b2bfcSGreg Roach </li> 283dd6b2bfcSGreg Roach <!-- UPLOAD/IMPORT --> 284dd6b2bfcSGreg Roach <li> 285dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/upload') ?></span> 2866fd01894SGreg Roach <a href="<?= e(route(ImportGedcomPage::class, ['tree' => $managed_tree->name()])) ?>"> 287dd6b2bfcSGreg Roach <?= I18N::translate('Import') ?> 288315eb316SGreg Roach <span class="visually-hidden"><?= e($managed_tree->title()) ?></span> 289dd6b2bfcSGreg Roach </a> 290dd6b2bfcSGreg Roach </li> 291dd6b2bfcSGreg Roach </ul> 292dd6b2bfcSGreg Roach </div> 293dd6b2bfcSGreg Roach </div> 294dd6b2bfcSGreg Roach </div> 295dd6b2bfcSGreg Roach </div> 296dd6b2bfcSGreg Roach </div> 297dd6b2bfcSGreg Roach <?php endif ?> 298dd6b2bfcSGreg Roach <?php endforeach ?> 299dd6b2bfcSGreg Roach</div> 300dd6b2bfcSGreg Roach 301dd6b2bfcSGreg Roach<?= view('modals/ajax') ?> 302