Skip to content

Remove the override releated links from service pages #291

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ dependencies:
- field.field.node.localgov_services_page.localgov_common_tasks
- field.field.node.localgov_services_page.localgov_download_links
- field.field.node.localgov_services_page.localgov_hide_related_topics
- field.field.node.localgov_services_page.localgov_override_related_links
- field.field.node.localgov_services_page.localgov_page_components
- field.field.node.localgov_services_page.localgov_related_links
- field.field.node.localgov_services_page.localgov_services_parent
Expand Down Expand Up @@ -56,7 +55,6 @@ third_party_settings:
children:
- localgov_hide_related_topics
- localgov_topic_classified
- localgov_override_related_links
- localgov_related_links
label: 'Related content'
region: content
Expand Down Expand Up @@ -120,13 +118,6 @@ content:
settings:
display_label: true
third_party_settings: { }
localgov_override_related_links:
type: boolean_checkbox
weight: 10
region: content
settings:
display_label: true
third_party_settings: { }
localgov_page_components:
type: entity_browser_entity_reference
weight: 10
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ dependencies:
- field.field.node.localgov_services_page.localgov_common_tasks
- field.field.node.localgov_services_page.localgov_download_links
- field.field.node.localgov_services_page.localgov_hide_related_topics
- field.field.node.localgov_services_page.localgov_override_related_links
- field.field.node.localgov_services_page.localgov_page_components
- field.field.node.localgov_services_page.localgov_related_links
- field.field.node.localgov_services_page.localgov_topic_classified
Expand Down Expand Up @@ -40,7 +39,6 @@ hidden:
localgov_common_tasks: true
localgov_download_links: true
localgov_hide_related_topics: true
localgov_override_related_links: true
localgov_related_links: true
localgov_topic_classified: true
links: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ dependencies:
- field.field.node.localgov_services_page.localgov_common_tasks
- field.field.node.localgov_services_page.localgov_download_links
- field.field.node.localgov_services_page.localgov_hide_related_topics
- field.field.node.localgov_services_page.localgov_override_related_links
- field.field.node.localgov_services_page.localgov_page_components
- field.field.node.localgov_services_page.localgov_related_links
- field.field.node.localgov_services_page.localgov_services_parent
Expand Down Expand Up @@ -93,5 +92,4 @@ content:
hidden:
links: true
localgov_hide_related_topics: true
localgov_override_related_links: true
search_api_excerpt: true
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ dependencies:
- field.field.node.localgov_services_page.localgov_common_tasks
- field.field.node.localgov_services_page.localgov_download_links
- field.field.node.localgov_services_page.localgov_hide_related_topics
- field.field.node.localgov_services_page.localgov_override_related_links
- field.field.node.localgov_services_page.localgov_page_components
- field.field.node.localgov_services_page.localgov_related_links
- field.field.node.localgov_services_page.localgov_services_parent
Expand All @@ -32,7 +31,6 @@ hidden:
localgov_common_tasks: true
localgov_download_links: true
localgov_hide_related_topics: true
localgov_override_related_links: true
localgov_page_components: true
localgov_related_links: true
localgov_services_parent: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ dependencies:
- field.field.node.localgov_services_page.localgov_common_tasks
- field.field.node.localgov_services_page.localgov_download_links
- field.field.node.localgov_services_page.localgov_hide_related_topics
- field.field.node.localgov_services_page.localgov_override_related_links
- field.field.node.localgov_services_page.localgov_page_components
- field.field.node.localgov_services_page.localgov_related_links
- field.field.node.localgov_services_page.localgov_topic_classified
Expand All @@ -33,7 +32,6 @@ hidden:
localgov_common_tasks: true
localgov_download_links: true
localgov_hide_related_topics: true
localgov_override_related_links: true
localgov_page_components: true
localgov_related_links: true
localgov_topic_classified: true
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Url;
use Drupal\localgov_services\Plugin\Block\ServicesBlockBase;
use Drupal\node\Entity\Node;
use Drupal\taxonomy\TermInterface;

/**
* Provides a 'Services Related Links Block' block.
Expand All @@ -23,12 +21,12 @@ class ServicesRelatedLinksBlock extends ServicesBlockBase implements ContainerFa
/**
* {@inheritdoc}
*/
public function build() {
public function build(): array {
$build = [];

$links = $this->getShouldUseManual() ? $this->buildManual() : $this->buildAutomated();
$links = $this->displayLinks() ? $this->getLinks() : [];

if ($links) {
if (count($links)) {
$build[] = [
'#theme' => 'services_related_links_block',
'#links' => $links,
Expand All @@ -44,7 +42,7 @@ public function build() {
* @return array
* Array of links.
*/
private function buildManual() {
private function getLinks(): array {
$links = [];

if ($this->node->hasField('localgov_related_links')) {
Expand All @@ -62,95 +60,20 @@ private function buildManual() {
}

/**
* Automatically builds a list of links based on the most relevant pages.
* Legacy: Decide if we should use a manual override.
*
* @todo Decide how the automated link generation should work.
*
* @return array
* Array of links.
*/
private function buildAutomated() {
// Return an empty array for the time being.
return [];

// @codingStandardsIgnoreStart
// Convert topics field into an array we can use in the query.
$topics = [];

foreach ($this->getTopics() as $topic) {
$topics[] = $topic->id();
}

if ($topics) {
// Perform our query.
$query = $this->database->query('SELECT entity_id FROM node__localgov_topic_classified
LEFT JOIN node_field_data ON node_field_data.nid=node__localgov_topic_classified.entity_id
WHERE node__localgov_topic_classified.entity_id != :nid
AND node__localgov_topic_classified.localgov_topic_classified_target_id IN (:tids[])
AND node_field_data.status=1
GROUP BY node__localgov_topic_classified.entity_id
ORDER BY count(*) desc
LIMIT 6;',
[
':nid' => $this->node->id(),
':tids[]' => $topics,
]
);

$list = [];
foreach ($query->fetchAll() as $result) {
$node = Node::load($result->entity_id);
$list[] = [
'title' => $node->getTitle(),
'url' => $node->toUrl(),
];
}

return $list;
}

return [];
// @codingStandardsIgnoreEnd
}

/**
* Decide if we should use a manual override.
* Field has been removed from new installs.
* https://github.com/localgovdrupal/localgov_services/pull/291
*
* @return bool
* Should manual links be displayed?
*/
private function getShouldUseManual() {
private function displayLinks(): bool {
if ($this->node->hasField('localgov_override_related_links') && !$this->node->get('localgov_override_related_links')->isEmpty()) {
return $this->node->get('localgov_override_related_links')->first()->getValue()['value'];
}

return FALSE;
}

/**
* Build links array for the related topics block.
*
* @return array
* Array of topics.
*/
private function getTopics() {
$topics = [];

if ($this->node->hasField('localgov_topic_classified')) {

/** @var \Drupal\taxonomy\TermInterface $term_info */
foreach ($this->node->get('localgov_topic_classified')->getValue() as $term_info) {
$topicEntity = $this->entityTypeManager->getStorage('taxonomy_term')->load($term_info['target_id']);

// Add topic only if an actual taxonomy term,
// deleted topics can return NULL if still present on the node.
if ($topicEntity instanceof TermInterface) {
$topics[] = $topicEntity;
}
}
}

return $topics;
return TRUE;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ public function testServicesPage() {
$this->assertSession()->pageTextContains('localgov_hide_related_topics');
$this->assertSession()->pageTextContains('localgov_page_components');
$this->assertSession()->pageTextContains('localgov_related_links');
$this->assertSession()->pageTextContains('localgov_override_related_links');
$this->assertSession()->pageTextContains('localgov_topic_classified');
$this->assertSession()->pageTextContains('localgov_services_parent');

Expand Down
1 change: 0 additions & 1 deletion tests/src/Functional/ServicesBlockTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ public function testServiceCoreBlocksDisplay() {

// Check manually added related links.
$this->assertSession()->pageTextNotContains('Related Links');
$services_page->set('localgov_override_related_links', ['value' => 1]);
$services_page->set('localgov_related_links', [
'uri' => 'http://test.com/',
'title' => 'Example related link',
Expand Down
Loading