Module improvements: configurable title, path prefix, breadcrumb, page header support, configurable text and area browse dropdown
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #3593857. -->
Reported by: [jamesfmcgrath](https://www.drupal.org/user/546314)
Related to !12
>>>
<p>Six improvements requested by a council implementation:</p>
<ol>
<li><strong>Configurable page title.</strong> Currently hardcoded in routing.yml, to be moved to the admin settings form.</li>
<li><strong>Configurable path prefix.</strong> All bus page paths currently hardcode buses/. A prefix field in the settings form will update all View display paths, field link paths, and the homepage route automatically on save, ensuring all bus pages (stop search, route search, timetables, and individual stop and route pages) follow the configured prefix consistently.</li>
<li><strong>Breadcrumb.</strong> LGD automatically builds the breadcrumb trail by matching URL path segments against existing content. No custom code or menu link required. The breadcrumb will be correct as long as the configured path prefix matches the existing Services page hierarchy.</li>
<li><strong>Intro text in LGD page header.</strong> An opt-in setting to push the intro text and page title into the LGD page header region via PageHeaderDisplayEvent, following the pattern used in localgov_news.</li>
<li><strong>Configurable homepage text.</strong> Section titles and descriptions are currently hardcoded in the Twig template. Fields will be added to the settings form for each configurable text area, passed through the controller, and rendered from config in the template.</li>
<li><strong>Area browse dropdown option.</strong> The area browse section currently uses a JS-powered tab and button widget. A toggle in the settings form will allow councils to display areas as a dropdown instead, rendering a<br>
<select> element that submits to the stop search route with the locality query parameter. The existing JS will only run for the tabs variant.</select></li>
</ol>
issue