1) Вообще как бы не очень понятно зачем два расширения для решения этой задачи. Можно просто в рамках одного расширения добавить две таблицы: первая, для хранения информации о категориях, вторая - для файлов. Kickstarter Вам, как говорится, в помощь. В нем создайте сначала таблицу для хранения информации о категориях, а затем добавьте таблицу для хранения информации о файлах. Во второй таблице, создайте поле которое будет служить для привязки файла к определенной категории. Т.е. в качества field type выбирите "Database Relation", а для "
Create relation to table:" в выпадающем списке выбирите первую созданную Вами таблицу. Простые примера по написанию расширений и работе с kickstater'ом
смотрим здесь (Frontend Plugin Development и The Extension Manager & Kickstarter)
2) Я конечно не знаю всех тонкостей Вашей задачи, но возможно можно обойтись и без написание собственного расширения. Обратите свое внимание на расширения DAM. Одной из его широкого круга возможностей является как раз привязка файлов к категориям.