Fix mod_finder and mod_footer overrides to match Joomla core contracts
mod_finder: - Use correct language keys (MOD_FINDER_SEARCH_VALUE, JSEARCH_FILTER_SUBMIT) - Use $app (available from module dispatcher) instead of Factory - Load com_finder.finder script and awesomplete preset - Add show_label, show_button, show_advanced support from core - Register com_finder extension assets - Use $route from module dispatcher (not hardcoded) mod_footer: - Use $lineone variable from module helper (not $module->content) - Add MOD_FOOTER_LINE2 language string output - mod_footer generates its own content, it's not a custom HTML module Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,39 +14,72 @@
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Router\Route;
|
||||
|
||||
Factory::getApplication()->getLanguage()->load('mod_finder', JPATH_SITE);
|
||||
Factory::getApplication()->getLanguage()->load('com_finder', JPATH_SITE);
|
||||
// Load component language for search labels
|
||||
$lang = $app->getLanguage();
|
||||
$lang->load('com_finder', JPATH_SITE);
|
||||
|
||||
$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
|
||||
$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
|
||||
$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
|
||||
|
||||
$showLabel = $params->get('show_label', 1);
|
||||
$labelClass = (!$showLabel ? 'visually-hidden ' : '') . 'finder';
|
||||
|
||||
Text::script('MOD_FINDER_SEARCH_VALUE');
|
||||
|
||||
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
|
||||
$wa = $app->getDocument()->getWebAssetManager();
|
||||
$wa->getRegistry()->addExtensionRegistryFile('com_finder');
|
||||
|
||||
if ($params->get('show_autosuggest', 1)) {
|
||||
$wa->usePreset('awesomplete');
|
||||
$app->getDocument()->addScriptOptions('finder-search', ['url' => Route::_('index.php?option=com_finder&task=suggestions.suggest&format=json&tmpl=component', false)]);
|
||||
Text::script('COM_FINDER_SEARCH_FORM_LIST_LABEL');
|
||||
Text::script('JLIB_JS_AJAX_ERROR_OTHER');
|
||||
Text::script('JLIB_JS_AJAX_ERROR_PARSE');
|
||||
}
|
||||
|
||||
$wa->useScript('com_finder.finder');
|
||||
?>
|
||||
<div class="mod-finder<?php echo $suffix ? ' ' . $suffix : ''; ?>">
|
||||
<?php if ($module->showtitle) : ?>
|
||||
<<?php echo $headerTag; ?> class="mod-finder__title<?php echo $headerClass ? ' ' . $headerClass : ''; ?>"><?php echo $module->title; ?></<?php echo $headerTag; ?>>
|
||||
<?php endif; ?>
|
||||
<form action="<?php echo Route::_($route); ?>" method="get" class="mod-finder__form" role="search">
|
||||
<div class="input-group">
|
||||
<label for="mod-finder-searchword-<?php echo $module->id; ?>" class="visually-hidden">
|
||||
<?php echo Text::_('COM_FINDER_SEARCH_LABEL'); ?>
|
||||
<form class="mod-finder__form js-finder-searchform form-search" action="<?php echo Route::_($route); ?>" method="get" role="search">
|
||||
<label for="mod-finder-searchword<?php echo $module->id; ?>" class="<?php echo $labelClass; ?>">
|
||||
<?php echo $params->get('alt_label', Text::_('JSEARCH_FILTER_SUBMIT')); ?>
|
||||
</label>
|
||||
<input type="search" name="q" id="mod-finder-searchword-<?php echo $module->id; ?>"
|
||||
class="form-control" value="<?php echo htmlspecialchars($app->getInput()->get('q', '', 'string'), ENT_COMPAT, 'UTF-8'); ?>"
|
||||
placeholder="<?php echo Text::_('COM_FINDER_SEARCH_LABEL'); ?>">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<div class="input-group">
|
||||
<input type="text" name="q" id="mod-finder-searchword<?php echo $module->id; ?>"
|
||||
class="js-finder-search-query form-control"
|
||||
value="<?php echo htmlspecialchars($app->getInput()->get('q', '', 'string'), ENT_COMPAT, 'UTF-8'); ?>"
|
||||
placeholder="<?php echo Text::_('MOD_FINDER_SEARCH_VALUE'); ?>">
|
||||
<?php if ($params->get('show_button', 0)) : ?>
|
||||
<button class="btn btn-primary" type="submit">
|
||||
<span class="fa-solid fa-magnifying-glass" aria-hidden="true"></span>
|
||||
<span class="visually-hidden"><?php echo Text::_('COM_FINDER_SEARCH_LABEL'); ?></span>
|
||||
<span class="visually-hidden"><?php echo Text::_('JSEARCH_FILTER_SUBMIT'); ?></span>
|
||||
</button>
|
||||
</div>
|
||||
<?php if ($params->get('show_autosuggest', 1)) : ?>
|
||||
<?php $app->getDocument()->getWebAssetManager()->useScript('awesomplete'); ?>
|
||||
<?php endif; ?>
|
||||
<input type="hidden" name="option" value="com_finder">
|
||||
<input type="hidden" name="Itemid" value="<?php echo $route; ?>">
|
||||
</div>
|
||||
|
||||
<?php $show_advanced = $params->get('show_advanced', 0); ?>
|
||||
<?php if ($show_advanced == 2) : ?>
|
||||
<a href="<?php echo Route::_($route); ?>" class="mod-finder__advanced-link mt-2 d-inline-block">
|
||||
<?php echo Text::_('COM_FINDER_ADVANCED_SEARCH'); ?>
|
||||
</a>
|
||||
<?php elseif ($show_advanced == 1) : ?>
|
||||
<div class="mod-finder__advanced js-finder-advanced mt-2">
|
||||
<?php echo HTMLHelper::_('filter.select', $query, $params); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
$finderHelper = $app->bootModule('mod_finder', 'site')->getHelper('FinderHelper');
|
||||
echo $finderHelper->getHiddenFields($route);
|
||||
?>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,6 @@ $headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'U
|
||||
<?php if ($module->showtitle) : ?>
|
||||
<<?php echo $headerTag; ?> class="mod-footer__title<?php echo $headerClass ? ' ' . $headerClass : ''; ?>"><?php echo $module->title; ?></<?php echo $headerTag; ?>>
|
||||
<?php endif; ?>
|
||||
<div class="mod-footer__content">
|
||||
<?php echo $module->content; ?>
|
||||
</div>
|
||||
<div class="mod-footer__line1"><?php echo $lineone; ?></div>
|
||||
<div class="mod-footer__line2"><?php echo Text::_('MOD_FOOTER_LINE2'); ?></div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user