Я нашел место в коде компонента, где выводится фильтр категорий - это файл из папки "\components\com_bagallery\helpers\bagallery.php".
Код вот такой:
if ($general->category_list == 1 && $general->album_mode != 1 && !$categorySelector) {
$html .= "<div class='row-fluid'><div class='span12 category-filter' style='display: none;'>";
foreach ($categories as $category) {
$settings = explode(';', $category->settings);
if (!in_array($settings[4], $unpublishCats)) {
$alias = $aliasMap[$settings[4]];
$html .= "<a ";
$alias = strtolower($alias);
$alias = str_replace(' ', '-', $alias);
$alias = str_replace('%', '', $alias);
$alias = str_replace('?', '', $alias);
$alias = urlencode($alias);
$html .= " data-alias='".$alias."'";
if (!empty($category->password)) {
$html .= ' data-password data-id="'.$category->id.'"';
}
if (strpos($currentUri, '?') === false) {
$alias = $currentUri.'?'.$alias;
} else {
$alias = $currentUri.'&'.$alias;
}
if (self::$_currentCat == $settings[4]) {
self::$_currentAlias = $alias;
}
$html .= ' href="'.$alias.'"';
$html .= " data-filter='.category-" .$settings[4];
$html .= "' class='ba-btn ba-filter";
if ($settings[1] == 1) {
$defaultCategory = $settings[4];
$html .= "-active";
}
$html .= "'>" .$settings[0]. "</a>";
}
}
$html .= "<select class='ba-select-filter'>";
foreach ($categories as $category) {
$category = explode(';', $category->settings);
if (!in_array($category[4], $unpublishCats)) {
$html .= "<option value='.category-" .$category[4]. "'";
if ($category[1] == 1) {
$html .= " selected";
}
$html .= ">". $category[0]. "</option>";
}
}
$html .= "</select>";
if (!empty(self::$_tags) || !empty(self::$_colors)) {
$html .= "<a class='show-filter-modal' href='#'>".$language->_('FILTER')."</a>";
}
$html .= "<input type='hidden' value='" .$defaultFilter. "' class='";
$html .= "default-filter-style'>";
$html .= "</div></div>";
}
Я опустил весь фрагмент ниже, после вот этих строк:
$html .= $language->_('LOAD_MORE'). "-_-" .$language->_('SCROLL_TOP');
$html .= "'></div></div>";
}
И после этого фильтр переехал вниз, под миниатюры.
Правда, не могу себе представить, зачем это нужно, ведь фильтр будет "скакать" по экрану при переключении категорий из-за разного количества изображений в каждой из них.
Но, тем не менее, поставленная задача решена.
Единственное - нужно помнить об сделанных изменениях файла компонента при проведении обновлений, и не забывать повторять перенос кода после каждого очередного обновления компонента галереи.
Примечание - версия галереи в этом примере - 2.2.5
Хотя я у себя вывожу галерею не в режиме альбома с фильтром категорий, а провел модификацию, и все вложенные альбомы выводятся с шапкой в виде цепочки ссылок типа хлебных крошек (breadcrumbs), позволяющей посетителю сайта вернуться вверх сразу на любой нужный ему уровень вложенности, кликнув на одной из ссылок в "breadcrumbs". На трех "последовательных" скриншотах в принципе понятно, что в верхней строке присутствуют активные ссылки, разделенные слешем ("/").