Skip to content

Commit

Permalink
Remove the override releated links from service pages (#291)
Browse files Browse the repository at this point in the history
* Remove the override releated links from service pages

Fix #72

This is a holdover from the old BHCC site, but the functionlity for
automated links was never implemented in Localgov Drupal.

This will remove this field for new sites, and will always render the
releated links if they are present regardless.

* Remove references to override_related_links from tests

Related links should now always show when present

* Support existing installs using override to hide links.

---------

Co-authored-by: ekes <[email protected]>
  • Loading branch information
andybroomfield and ekes authored Jan 21, 2025
1 parent 4986458 commit 4e65945
Show file tree
Hide file tree
Showing 10 changed files with 9 additions and 144 deletions.
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

0 comments on commit 4e65945

Please sign in to comment.