Опишу свое представление идеального универсального каталога (наболевшее)
Универсальный каталог - это такой каталог который должен заменить многие однозадачные компоненты: файловые архивы, каталоги сайтов, недвижимости, каталоги товаров, доски обьявлений и в идеале дефолтный компонент новостей.
Как это представляется в реализации:
- мультикаталожность. для чего? - чтоб не навешивать множество однозадачных каталогов на одном сайте, а заменить все одним. также часто бывает потребность у людей использовать один каталог для нескольких задач, например файловый архив и каталог сайтов. но не один из разработчиков почему то не додумался реализовать систему виртуальных каталогов, тоесть чтоб используя один компонент можно было реализовать несколько различных каталогов на одном сайте, при том с разным оформлением, настройками и наборами полей. таким образом компонент mtree, sobi, alphacontent пытаются клонировать, всячески изошряются с меню, вобщем насилие...
по этому, включить понятие корневых категорий (далее разделы), которые и будут собой представлять "виртуальные каталоги".
сделать возможность создавать ссылки меню не на сам компонент, а на его или разделы. далее... - неограниченое кол-во custom-полей. это лучше сделать в виде системы заготовок-раскладок. так мы сможем создавать отдельные заготовки, называть их и назначать глобально на разделы и на дочерние категории по отдельности.
- система раскладок-шаблонов, на примере компонента JDownloads, так же как и с шаблонами полей, эта система позволит делать заготовки оформления и назначать их произвольно для целых разделов глобально и для внутренних категорий. в каджой раскладке должна быть система заглушек, которая позволит управлять расположением каждого отдельного поля. так же при помощи глобальных заглушек подключать встроеные модули - альфаиндекс, форму выборки по полям, форму сортировки.
- чтобы два предидущих пункта имели смысел, нужно в настройках каждого раздела и категории сделать выбор заготовок полей и раскладок оформления. по умолчанию должно стоять "использовать глобальные"
- реализовать возможность наполнения каталогов из frontend для каждой категории
такая простая гибкость позволит из одного компонента реализовывать неограниченое число каталогов, файловых архивов, портфорио, чего угодно и все может быть не похоже одно на другое (в зависимости от фантазии конструктора)
Даже можно будет использовать этот компонент как замену com_content, как блоги.
Пока очень поверхностно описал, на что хватило усидчивости
Если это заинтересует, будет продолжение, могу более четко все расписать в нюансах