Skip to content
Snippets Groups Projects
Commit f2bf481f authored by Eirik Morland's avatar Eirik Morland
Browse files

Issue #3441348 by eiriksm: Create a proper render array and theme hooks for team project list

parent 4b65437c
No related branches found
No related tags found
1 merge request!51Resolve #3441348 "Create a proper"
Pipeline #148464 passed with warnings
......@@ -50,12 +50,11 @@ class TeamProjectController extends ControllerBase {
*/
public function build(TeamNode $team) {
$projects = $this->teamManager->getProjects($team);
$build = [];
foreach ($projects as $project) {
$build[] = [
'#markup' => $project->label(),
];
}
$build = [
'#theme' => 'violinist_teams_projects',
'#projects' => $projects,
'#team' => $team,
];
return $build;
}
......
<div class="project">
{{ project_rendered }}
</div>
<div class="projects">
{% for project in projects_rendered %}
{{ project }}
{% endfor %}
</div>
......@@ -7,6 +7,7 @@
use Drupal\Core\Entity\EntityInterface;
use Drupal\user\UserInterface;
use Drupal\violinist_projects\ProjectNode;
use Drupal\violinist_teams\TeamNode;
/**
......@@ -14,6 +15,19 @@ use Drupal\violinist_teams\TeamNode;
*/
function violinist_teams_theme($existing, $type, $theme, $path) {
return [
'violinist_teams_projects' => [
'variables' => [
'projects' => [],
'projects_rendered' => [],
'team' => NULL,
],
],
'violinist_teams_project' => [
'variables' => [
'project' => [],
'project_rendered' => '',
],
],
'violinist_teams_invite_link_wrapper' => [
'variables' => [
'link_element' => '',
......@@ -43,6 +57,39 @@ function violinist_teams_theme($existing, $type, $theme, $path) {
];
}
/**
* Implements hook_preprocess_HOOK().
*/
function violinist_teams_preprocess_violinist_teams_projects(&$variables) {
if (empty($variables['projects'])) {
return;
}
/** @var \Drupal\violinist_projects\ProjectNode[] $projects */
$projects = $variables['projects'];
$projects_rendered = [];
foreach ($projects as $project) {
$projects_rendered[] = [
'#theme' => 'violinist_teams_project',
'#project' => $project,
];
}
$variables['projects_rendered'] = $projects_rendered;
}
/**
* Implements hook_preprocess_HOOK().
*/
function violinist_teams_preprocess_violinist_teams_project(&$variables) {
if (empty($variables['project'])) {
return;
}
$project = $variables['project'];
if (!$project instanceof ProjectNode) {
return;
}
$variables['project_rendered'] = $project->toLink();
}
/**
* Implements hook_preprocess_HOOK().
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment